PDF to PNG z czerwonym odcieniem na macOS w IronPDF for Node.js
Podczas rastrowania PDF do PNG na macOS przy użyciu IronPDF for Node.js, obraz wynikowy ma nieprawidłowe kolory. Kod QR, który w źródłowym PDF jest czarny, w wyeksportowanym PNG wyświetla się na czerwono.
Błąd mapowania kanałów kolorów w procesie rastrowania PDF do obrazu na macOS powoduje użycie nieprawidłowej kolejności kanałów, co skutkuje czerwonym odcieniem.
Rozwiązanie
Zamiast do PNG, rastrować do JPG, a następnie użyć sharp, aby przekonwertować JPG na szary PNG. To omija problem mapowania kanałów kolorów na macOS.
Install sharp:
npm install sharpnpm install sharpRastrowanie do JPG, następnie konwersja do 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();Dostosuj wartość threshold między 120 a 200 w oparciu o kontrast kodu QR w Twoim PDF. Ten krok post-processingu jest bezpieczny dla kodów QR, ponieważ są one binarne: czarne komórki na białym tle. Konwersja na skalę szarości nie powoduje utraty niczego dla kodów QR.





