Conversion PDF en PNG avec teinte rouge sur macOS dans IronPDF for Node.js
Lors de la rasterisation d'un PDF en PNG sur macOS en utilisant IronPDF for Node.js, l'image de sortie a des couleurs incorrectes. Un code QR qui apparaît noir dans le PDF source rend rouge dans le PNG exporté.
Une erreur de mappage des canaux de couleur dans le pipeline de rasterisation PDF-vers-image sur macOS provoque l'utilisation d'un ordre de canaux incorrect, produisant la teinte rouge.
Solution
Rasterisez en JPG au lieu de PNG, puis utilisez sharp pour convertir le JPG en PNG en niveaux de gris. Cela évite le problème de mappage des canaux de couleur sur macOS.
Install sharp:
npm install sharp
npm install sharp
Rasteriser en JPG, puis convertir en PNG :
import { PdfDocument, ImageType } from "@ironsoftware/ironpdf";
import sharp from "sharp";
const pdf = await PdfDocument.fromFile("input.pdf");
const [jpgPage] = await pdf.rasterizeToImageBuffers({
fromPages: 0,
imageType: ImageType.JPG,
});
const pngBuffer = await sharp(jpgPage)
.flatten({ background: "#ffffff" })
.grayscale()
.threshold(160)
.png()
.toBuffer();
Ajustez la valeur threshold entre 120 et 200 en fonction du contraste du code QR dans votre PDF. Cette étape de post-traitement est sans risque pour les codes QR car ils sont binaires : cellules noires sur fond blanc. Une conversion en niveaux de gris ne perd rien pour les codes QR.

