macOSでIronPDF for Node.jsを使用したPDFからPNGへの赤みの着色
macOSでIronPDF for Node.jsを使用してPDFをPNGにラスタライズする際、出力画像の色が正しくありません。 ソースPDFで黒く表示されるQRコードが、エクスポートされたPNGでは赤く表示されます。
macOSのPDFから画像へのラスタライズパイプラインにおけるカラーチャンネルマッピングエラーにより、出力が誤ったチャンネル順序を使用し、赤みがかかります。
解決策
JPGにラスタライズし、次にsharpを使用してJPGをグレースケールPNGに変換してください。 これにより、macOSのカラーチャンネルマッピングの問題を回避できます。
sharpをインストールしてください:
npm install sharpnpm install sharpJPGにラスタライズしてから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();PDFのQRコードのコントラストに基づいてthresholdの値を120から200の間で調整してください。 この後処理ステップは、QRコードがバイナリ形式(白地に黒いセル)であるため安全です。 グレースケール変換はQRコードに何も失わせません。





