wes*_*ywh 5 php cmyk ghostscript imagick
我被卡住了,真的可以在这个问题上使用一些帮助。我正在使用 PHP 和 Imagick 生成一个运行良好的缩略图。但是,我注意到 CMYK PDF 总是以灰度生成。因此,我通过获取 CMYK PDF 并使用 Adobe Acrobat Pro 手动将其转换为 RGB 来对此进行测试。然后我通过以下代码重新运行它并生成了一个彩色图像。我知道
$image->transformImageColorSpace(1);
or
$image->setImageColorSpace(1);
Run Code Online (Sandbox Code Playgroud)
然而这行不通。将 pdf 转换为彩色 PNG 图像的正确方法是什么?我查看了以下链接但没有运气:
http://php.net/manual/en/imagick.setimagecolorspace.php
使用 PHP 和 ImageMagick 将 PDF 转换为 JPEG
对此的任何帮助都会很棒。
这是代码:
$filePath = fileSaveUserUpload("path/to/file", ""); //path changed here...
$_SESSION['FILEPATH'] = $filePath;
//-------------first makes a thumbnail of first page in image/pdf
$extension_pos = strrpos($filePath, '.'); // find position (number) of the last dot, so where the extension starts
$image = new Imagick();
$image->readImage($filePath."[0]"); //reads an image at a path(first page only in this case)
$image->transformImageColorSpace(1); //convert to RGB
$image->setbackgroundcolor('white'); //replace transparency with this color
$image->setCompression(Imagick::COMPRESSION_LOSSLESSJPEG);
$image->setCompressionQuality(150);
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); //remove transparency
$image->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN); //make everything that was transparent white
$image->thumbnailImage(0,250); //max height 300 but try and preserve aspect ratio (wdithxheight)
$thumbnail = substr($filePath, 0, $extension_pos) . '_thumb.png';// . substr($filePath, $extension_pos);
$image->writeImage($thumbnail);
$image->clear();
$image->destroy();
Run Code Online (Sandbox Code Playgroud)
更新:
我正在使用以下 imagick 版本:
ImageMagick 6.9.1-2 Q16 x86 2015-04-14
3.3.0RC2
GhostScript 版本: 9.18
这是原始PDF(在此处将其更改为图片):
这是它生成的缩略图:
这仅发生在 CMYK PDF 中。如果我使用相同的 PDF 并通过 adobe acrobat 将其转换为 RGB,它会显示颜色。我对此进行了测试,它仍然适用。
| 归档时间: |
|
| 查看次数: |
1391 次 |
| 最近记录: |