将彩色 pdf 转换为传真友好的灰度 pdf(使用 Imagick)

Converting colorful pdfs to fax-friendly grayscale pdf (with Imagick)

我正在尝试将彩色 pdf 转换为传真友好的 pdf(不使用太多墨水)。 Twilio 的处理方式非常好。我相信这可以通过 Imagick 实现。我的主要动机是在我的服务器端使用 Imagick 进行转换,这样我的 Twilio 转换的输入和输出就不会完全不同。

我试过这些,但它们看起来与 Twilio 的不一样:

$img->quantizeImage(255, Imagick::COLORSPACE_GRAY, 1, TRUE, FALSE);
$img->writeImage('output.png');

// and 
$img->quantizeImage(1, Imagick::COLORSPACE_GRAY, 1, TRUE, FALSE);

以上代码段导致完全颜色转换。


让我向您展示 Twilio 是如何做到的:

原始PDF:

Twilio 转换的 PDF:

和 Twilio 转换的 PDF 的缩放版本和纯色背景图案:

您没有 post 实际的 PDF,而是 PNG 图片。所以我用了那个。如果这不起作用,则 post 一个 link 到您的 PDF。

在 Imagemagick 中,您可以添加抖动图案。我假设 Imagick 中有等效的命令。这是 Imagemagick 命令。

convert l9IYF.png -colorspace gray -ordered-dither o3x3 tmp.png

convert l9IYF.png -colorspace gray -ordered-dither h6x6a tmp2.png

https://www.imagemagick.org/Usage/quantize/#ordered-dither and http://us3.php.net/manual/en/imagick.orderedposterizeimage.php