IRONSOFTWAREHOME

PDF 转换为 PNG 红色调在 macOS 上的 IronPDF for Node.js

Curtis Chau
Curtis Chau
Updated: 2026年6月10日

在 macOS 上使用 IronPDF for Node.js 将 PDF 栅格化为 PNG 时,输出图像的颜色不正确。 在源 PDF 中看起来是黑色的 QR 代码在导出的 PNG 中呈现为红色。

macOS PDF 到图像栅格化管道中的颜色通道映射错误导致输出使用了错误的通道顺序,从而产生红色调。

解决方案

栅格化为 JPG 而不是 PNG,然后使用 sharp 将 JPG 转换为灰度 PNG。 这可以避免 macOS 的颜色通道映射问题。

安装 sharp:

npm install sharp
SHELL

栅格化为 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();
TypeScript

根据 PDF 中 QR 代码的对比度,在 120 到 200 之间调整 threshold 值。 这个后处理步骤对于 QR 代码是安全的,因为它们是二进制的:白色背景上的黑色单元。 灰度转换对于 QR 代码没有任何损失。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

版本:2026.6刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
Node.js 模块下载用于 PDF
using npm 安装

版本: 2026.6

  1. 下载并安装 Node.js 12+。
  2. 在终端中执行上述命令。

$999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
Node.js 模块下载用于 PDF
using npm 安装

版本: 2026.6

  1. 下载并安装 Node.js 12+。
  2. 在终端中执行上述命令。

$999