2017-07-19 75 views
0

我試圖爲使用蜻蜓寶石的CMYK pdf文件生成RGB縮略圖。這是工作的罰款與此代碼:蜻蜓轉換不與ImageMagick的配置文件選項

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

結果始終是「零」。沒有顯示錯誤。

當我在終端中手動執行代碼(顯示在控制檯中)時,文件已正確轉換。在 「蜻蜓:shell命令」:

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 

什麼會內蜻蜓導致此問題?

回答

0

我設法得到它與一個自定義的處理器和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 

現在我可以通過file.image.cmyk_pdf_thumb CMYK文件轉換。即使我設置ext選項設置爲「JPG」,我不得不encode結果得到一個JPEG文件:

file.image.cmyk_pdf_thumb.encode('jpg').url 
0

我不知道蜻蜓。但是,您不應該同時使用-colorspace和配置文件將CMYK轉換爲RGB。使用一個或另一個。更好的選擇是使用配置文件。除非您嘗試設置JPG的密度,否則在閱讀PDF文件以獲得更好的質量之前,您還應該設置密度。如果是這樣,你應該包括 - 單位像素。你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 

如果CMYK PDF已經有一個配置文件,然後不需要第一規格,而不應包括在內。您也可能不想要 - 100質量,因爲這將使一個更大的文件。 ImageMagick使用-quality 92作爲其默認值。

+0

非常感謝您爲改善!我在我的代碼中更改了它,但Ruby/Dragonfly錯誤令人遺憾地保持不變。 :/ – Railsana

+0

您是否使用正確的路徑到您的配置文件?配置文件是否存在? – fmw42