Images
Images
Cette page couvre le placement d’images raster sur une page, l’inspection des images déjà intégrées dans un document, et la réduction de leur taille. Pour le rendu d’une page vers une image, voir Conversion.
Intégration d’une image
Page.AddImage() place les octets d’image JPEG, PNG, BMP ou TIFF dans un rectangle précis au pixel sur la page.
// Source is 1280x1014; scaled to 60% of the page width, aspect preserved.
const srcW = 1280;
const srcH = 1014;
const imgW = pageWidth(page) * 0.6;
const imgH = (imgW * srcH) / srcW;
const x = (pageWidth(page) - imgW) / 2;
const y = (pageHeight(page) - imgH) / 2;
page.AddImage(imageBytes, [x, y, x + imgW, y + imgH]);AddImageOptions accepte opacity, un format explicite lorsqu’il ne peut pas être détecté à partir des octets, un tag (un StructElement auquel attacher l’image dans un document balisé), et un layer pour le contenu optionnel.
Inspection des images intégrées
Page.Images répertorie chaque image déjà présente sur la page en tant que ImageInfo[], sans décoder les données de pixel — chaque entrée expose Width, Height, Bits, ColorSpace et Filter. Appelez Decode() sur un ImageInfo pour obtenir ses octets d’échantillon bruts, Replace() pour remplacer les nouvelles données d’image sur place, ou Remove() pour la supprimer de la page.
for (const img of page.Images) {
console.log(img.Width, img.Height, img.ColorSpace, img.Filter);
}Optimisation des images
Document.Optimize() réduit la taille du fichier sur l’ensemble du document; passez une option images (OptimizeImageOptions, avec les champs dpi et quality) pour également réduire l’échantillonnage et réencoder les images intégrées dans le même passage.
const report = doc.Optimize({ images: { dpi: 150, quality: 80 } });Conseils et meilleures pratiques
Page.Imageslit uniquement les métadonnées— décoder les données de pixel complètes de chaque image avecDecode()au préalable est inutile si vous avez seulement besoin des dimensions ou de l’espace colorimétrique.- Fournissez un
formatexplicite dansAddImageOptionslorsque les octets source proviennent d’un flux ou d’un tampon sans extension de fichier fiable à détecter. - Utilisez
Document.Optimize({ images: { dpi, quality } })pour réduire un document contenant de nombreuses images, plutôt que de décoder manuellement et de réinsérer chacune d’elles. - Le rectangle de
Page.AddImage()définit directement la taille placée— mettez à l’échelle le rectangle cible selon le rapport d’aspect propre de l’image source pour éviter de l’étirer.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
| L’image apparaît étirée ou écrasée | La cible rect transmise à AddImage() ne correspond pas au rapport d’aspect de l’image source | Calculer la largeur/hauteur du rectangle à partir des dimensions propres de l’image source |
Page.AddImage() indique le mauvais format | Le format des octets d’image n’a pas pu être détecté de manière fiable | Fournissez un format explicite dans AddImageOptions |
| Le document est beaucoup plus volumineux que prévu après l’ajout d’images | Les images ont été intégrées à pleine résolution et qualité | Appelez Document.Optimize({ images: { dpi, quality } }) pour sous-échantillonner et ré-encoder |
FAQ
Comment placer une image sur une page?
Appelez page.AddImage(imageBytes, rect), où rect est un rectangle [x0, y0, x1, y1] en points d’espace de page.
Comment lister les images déjà présentes sur une page sans les décoder?
Lisez page.Images — un ImageInfo[] exposant Width, Height, ColorSpace et Filter pour chaque image sans décoder les données de pixels.
Puis-je réduire la taille du fichier d’un document en compressant ses images?
Oui — appelez Document.Optimize({ images: { dpi, quality } }), qui sous-échantillonne et ré-encode les images intégrées dans le cadre d’une passe d’optimisation à l’échelle du document.
En quoi l’intégration d’une image diffère-t-elle du rendu d’une page en image?
Page.AddImage() place les octets d’image raster sur une page existante. Page.ToImage() (voir Conversion) fait l’inverse — rendu de la page entière en octets PNG.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
Page.AddImage() | Placer les octets d’image dans un rectangle sur la page |
AddImageOptions | Options pour AddImage() : opacity, format, tag, layer |
Page.Images | Chaque image déjà sur la page, en tant que ImageInfo[] uniquement métadonnées |
ImageInfo.Decode() / Replace() / Remove() | Lire les données de pixels, remplacer par de nouveaux octets, ou supprimer une image |
Document.Optimize() | Réduire la taille du fichier sur l’ensemble du document, en option en sous-échantillonnant les images via images: { dpi, quality } |