std.pdf.image
Rasterbilder in PDF-Seiten einbetten: rohe Pixel als XObject registrieren und an beliebiger Position skaliert ausgeben. Wer eine Datei einbetten will, nimmt PdfAddImageFile aus std.pdf.imagefile.
→ std.pdf · std.pdf.graphics · std.pdf.page
Verwendung
import std.pdf.image;
// Rohe Pixel einbetten: Zeiger, Breite, Hoehe, Kanaele.
// channels: 1 = Graustufen (DeviceGray), 3 = RGB (DeviceRGB) — mehr nicht.
var img: int64 := PdfAddImage(doc, pixels, 320, 200, 3);
// Ausgeben: Position und Groesse in PUNKTEN, nicht in Pixeln
PdfDrawImage(doc, page, img, 72.0, 750.0, 120.0, 40.0);
Frühere Fassungen dieser Seite nanntenPdfAddImageJpeg,PdfImageWidthundPdfImageHeight— die gibt es nicht, undPdfAddImagenahm dort einen Pfad statt eines Pixelzeigers. Nachgemessen mitlyxc 1.1.16Agegenstd/pdf/image.lyx.
Die Originalgröße eines Bildes führt die Unit nicht mit; wer proportional skalieren will, merkt sich Breite und Höhe selbst — beim Laden über std.pdf.imagefile stehen sie ohnehin im Decoder.
Funktionen
| Signatur | Rückgabe | Beschreibung |
|---|---|---|
PdfAddImage(doc: int64, data: int64, pw: int64, ph: int64, channels: int64): int64 | Bildindex ab 0, oder -1 | Rohe Pixel als XObject registrieren. data zeigt auf die Bytes (zeilenweise, unterste Zeile zuerst — PDF-Koordinaten); channels ist 1 oder 3. Höchstens 16 Bilder je Dokument |
PdfDrawImage(doc: int64, page: int64, imgIdx: int64, x: f64, y: f64, wPts: f64, hPts: f64): void | — | Bild an (x, y) mit Breite und Höhe in Punkten ausgeben |
Die Pixel werden beim Registrieren komprimiert in das Dokument kopiert — der übergebene Puffer darf danach freigegeben werden.
Letzte Aktualisierung: 2026-09-01 — Signaturen gegen std/pdf/image.lyx berichtigt (PdfAddImageJpeg, PdfImageWidth und PdfImageHeight gibt es nicht; PdfAddImage nimmt einen Pixelzeiger, keinen Pfad) und auf std.pdf.imagefile verwiesen.
Vorherige Aktualisierung: 2026-05-22
