代码之家  ›  专栏  ›  技术社区  ›  Railsana

Dragonfly convert不使用ImageMagick的配置文件选项

  •  0
  • Railsana  · 技术社区  · 7 年前

    file.image.convert("-flatten -density 300 -quality 100", 'format' => 'jpg', 'frame' => 0).url

    结果是缩略图的正确url。

    由于一些用户上载CMYK文档,我想使用颜色配置文件和 colorspace

    file.image.convert("-flatten -profile /path_to/USWebCoatedSWOP.icc -profile /path_to/AppleRGB.icc -colorspace rgb -density 300 -quality 100", 'format' => 'jpg', 'frame' => 0).url

    当我在终端中手动执行代码(显示在控制台中)时,文件被正确转换。“蜻蜓:外壳命令”:

    convert /path_to/my_cmyk_file.pdf[0] -flatten -profile /path_to/USWebCoatedSWOP.icc -profile /path_to/AppleRGB.icc -colorspace RGB -density 300 -quality 100 /path_to/my_rgb_thumbnail.jpg
    

    结果是:

    /path_to/USWebCoatedSWOP.icc ICC 1x1 1x1+0+0 16-bit sRGB 557168B 0.010u 0:00.000
    /path_to/AppleRGB.icc ICC 1x1 1x1+0+0 16-bit sRGB 552B 0.000u 0:00.000
    /path_to/my_cmyk_file.pdf[0]=>/path_to/my_rgb_thumbnail.jpg PDF 420x595 420x595+0+0 16-bit sRGB 56625B 0.180u 0:00.190
    

    2 回复  |  直到 7 年前
        1
  •  0
  •   Railsana    7 年前

    我设法让它与自定义处理器和 shell_update 功能:

    processor :cmyk_pdf_thumb do |content|
      content.shell_update ext: 'jpg' do |old_path, new_path|
        "convert -density 300 #{old_path}[0] -flatten -profile USWebCoatedSWOP.icc -profile AppleRGB.icc #{new_path}"
      end
    end
    

    现在,我可以通过以下方式转换CMYK文档: file.image.cmyk_pdf_thumb ext 选择“jpg”,我必须 encode 获取JPEG文件的结果:

    file.image.cmyk_pdf_thumb.encode('jpg').url
    
        2
  •  0
  •   fmw42    7 年前

    我不认识蜻蜓。但是您不应该同时使用颜色空间和轮廓来从CMYK转换为RGB。使用其中之一。更好的选择是使用配置文件。为了获得更好的质量,您还应该在读取PDF文件之前设置密度,除非您试图设置jpg的密度。如果是这样,您应该包括-units pixelsperinch。您的ImageMagick命令应该是

    convert -density 300 /path_to/my_cmyk_file.pdf[0] -flatten -profile /path_to/USWebCoatedSWOP.icc -profile /path_to/AppleRGB.icc -quality 100 /path_to/my_rgb_thumbnail.jpg
    

    convert /path_to/my_cmyk_file.pdf[0] -flatten -profile /path_to/USWebCoatedSWOP.icc -profile /path_to/AppleRGB.icc -density 300  -units pixelperinch -quality 100 /path_to/my_rgb_thumbnail.jpg