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.Images lit uniquement les métadonnées— décoder les données de pixel complètes de chaque image avec Decode() au préalable est inutile si vous avez seulement besoin des dimensions ou de l’espace colorimétrique.
  • Fournissez un format explicite dans AddImageOptions lorsque 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èmeCauseCorrection
L’image apparaît étirée ou écraséeLa cible rect transmise à AddImage() ne correspond pas au rapport d’aspect de l’image sourceCalculer la largeur/hauteur du rectangle à partir des dimensions propres de l’image source
Page.AddImage() indique le mauvais formatLe format des octets d’image n’a pas pu être détecté de manière fiableFournissez un format explicite dans AddImageOptions
Le document est beaucoup plus volumineux que prévu après l’ajout d’imagesLes 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éthodeDescription
Page.AddImage()Placer les octets d’image dans un rectangle sur la page
AddImageOptionsOptions pour AddImage() : opacity, format, tag, layer
Page.ImagesChaque 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 }

Voir aussi

 Français