如何从PHP中的PDF文件生成图像?

时间:2013-05-29 00:46:41

标签: php internet-explorer pdf imagick

我正在使用Imagick从大量pdf文件中生成图像。我还希望这些图片采用RGBsRGB颜色模式,因此Internet Explorer可以正确显示图片。

我试过了

$im = new imagick($fileName.'[0]');
 //$im->setImageColorspace(Imagick::COLORSPACE_SRGB); //try this already
 // $im->setImageColorSpace(1);   //try this already
  $im->setResolution(300,300);
  $im->setImageFormat('jpeg');
  $im->writeImage($imageFile);
  $im->clear();
  $im->destroy();

我确实获得了图片,但使用setImageColorspacesetImageColorSpace方法的颜色却很明显。 (例如:颜色倒置。)

如果我注释掉这些方法,图片看起来是正确的,但其中一些不是RGB模式,并在Internet Explorer中产生问题。

我真的需要图像上的RGB颜色模式。反正有没有做到这一点?非常感谢!

1 个答案:

答案 0 :(得分:1)

您似乎遇到了CMYK pdfs的问题。您是否尝试过将它们转换为PNG? PNG - 与jpeg相对 - 仅对RGB进行编码,因此图像在任何情况下都将位于正确的色彩空间中。

您可能还想看看ghostscript(imagemagicks PDF转换背后的引擎)和--UseCIE切换。

我写了一个php-wrapper到ghostscript,你可以在github找到你想要使用ghostscript时可能会觉得有用的。