在IronPDF for Node.js中於macOS上將PDF轉為紅色色調的PNG
This article was translated from English: Does it need improvement?
TranslatedView the article in English
當在macOS上使用IronPDF for Node.js將PDF光柵化為PNG時,輸出圖像顏色不正確。 在源PDF中顯示為黑色的QR碼在導出的PNG中顯示為紅色。
macOS的PDF到圖像光柵化管道中的色彩通道映射錯誤導致輸出使用不正確的通道順序,產生紅色色調。
解決方案
光柵化為JPG而不是PNG,然後使用sharp將JPG轉換為灰階PNG。 這繞過了macOS的色彩通道映射問題。
安裝sharp:
npm install sharpnpm install sharpSHELL
光柵化為JPG,然後轉換為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碼沒有損失。





