macOS에서 IronPDF for Node.js로 변환 시 PDF를 PNG로 변환할 때 붉은색 색조
IronPDF for Node.js를 사용하여 macOS에서 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 코드가 흑백 이진적인 특성을 가지기 때문입니다. QR 코드는 그레이스케일 변환으로 인해 아무것도 잃지 않습니다.





