使用 imagemagick 生成的缩略图无法呈现正确的颜色

使用 imagemagick 生成的缩略图无法呈现正确的颜色

使用 imagemagick 生成 PDF 缩略图有时渲染颜色不正确。我们使用的是旧版本的 imagemagick(6.5.7-8,这是安装在 heroku 服务器上的版本)。这是我们当前使用的命令:

convert \
  -size "725x1200>" \
  -colorspace RGB \
  -flatten \
  -density 300 \
  -quality 100 \
   input.pdf \
   output.jpg

我尝试过使用不同的色彩空间,如 sRGB、YIQ 等,但它们都无法正确呈现颜色。

在本地使用 imagemagick-6.7.7-6 是可行的,因此我尝试在我的应用程序 /bin 目录中捆绑“convert”命令,该命令有效,但结果仍然错误,所以问题似乎来自“convert”使用的另一个 imagemagick 命令或来自另一个库。

以下是输出的一个示例:

  • 正确输出:在左边
  • 错误输出:在右侧
    正确输出 输出不正确

奇怪的是,对于同一 pdf 的某些页面,输出总是正确的。知道哪个库或命令可能是问题所在吗,或者是否有一组适当的选项可以传递给 imagemagick 以始终正确输出?

答案1

经过进一步调查,问题似乎出在 ghostscript 上,因为它缺少该-dUseCIEColor选项。从我在网上收集到的信息来看,无法通过 imagemagick 将参数传递给 ghostscript。不过,可以使用管道同时调用这两个命令:https://stackoverflow.com/questions/653380/converting-a-pdf-to-png

我的具体用例

这有点具体到我的用例,但我想有人可能会感兴趣。当我们在 rails 应用程序中通过 Paperclip 生成缩略图时,我创建了一个新的 paperclip 处理器来处理 pdf 到 jpg 的转换,然后 imagemagick 接管执行通常的调整大小操作。我的代码和示例如下:https://gist.github.com/3059321

相关内容