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 nannten PdfAddImageJpeg, PdfImageWidth und PdfImageHeight — die gibt es nicht, und PdfAddImage nahm dort einen Pfad statt eines Pixelzeigers. Nachgemessen mit lyxc 1.1.16A gegen std/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