IronPDF for Node.js'te macOS'ta PDF'yi PNG'ye Çevirme Kırmızı Ton Sorunu
IronPDF for Node.js kullanarak macOS'ta bir PDF'yi PNG'ye rasterleştirirken, çıktı görüntüsü hatalı renklere sahiptir. Kaynak PDF'de siyah görünen bir QR kodu, dışa aktarılan PNG'de kırmızı renkte renderlanır.
macOS PDF'den görüntü rasterleştirme hattında renk kanalı eşleme hatası, çıktının yanlış kanal sırasını kullanmasına ve kırmızı ton üretmesine neden olur.
Çözüm
JPG'ye rasterleştirin, ardından JPG'yi gri tonlamalı PNG'ye dönüştürmek için sharp kullanın. Bu, macOS renk kanalı eşleme sorununu atlar.
sharp'ı yükleyin:
npm install sharpnpm install sharpJPG'ye rasterleştirin, ardından PNG'ye dönüştürün:
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();PDF'nizdeki QR kodu kontrastına göre threshold değerini 120 ile 200 arasında ayarlayın. Bu son işlem adımı, QR kodları için güvenlidir çünkü bunlar ikilidir: beyaz arka plan üzerinde siyah hücreler. Gri tonlamaya dönüştürme, QR kodları için hiçbir şey kaybettirmez.





