2009-12-05 110 views
9

我一直在使用下面做一個顏色轉換CMYK圖像正確轉換爲RGB與RMagick

if @image.colorspace == Magick::CMYKColorspace 
     # @image.colorspace #=> CMYKColorspace=12 
     @image.colorspace = Magick::RGBColorspace 
     @image = @image.negate 
    end 

它的工作原理,約,但顏色亮度處於關閉狀態。我需要否定圖像的事實留下了非常難聞的氣味。

該文檔提到使用color_profiles,但除此之外我找不到多少。

我現在想

@image = @image.quantize(16777216, Magick::RGBColorspace) 

而且顏色也比較好,但仍然關閉。

+0

我不知道Ruby和Rmagick,但ImageMagick本身至少在理論上可以處理顏色配置文件。 (只要我記得,CMYK一直是IM的痛苦)。您是否在應用配置文件時遇到問題,或者使用配置文件不會改變任何內容?傳入的材料有什麼顏色配置文件,如果有的話? – 2009-12-05 20:38:27

+0

傳入的文件,在這種情況下,確實有一個配置文件。我會再調查一些。我迷上了顏色配置文件(比如我在哪裏下載它們?ICC網站沒有多大幫助)。謝謝。 – 2009-12-05 20:48:13

+0

這裏空間不足...請參閱下文。 – 2009-12-05 21:02:09

回答

11

謝謝佩卡,你給我的答案(+1)。

您必須安裝ImageMagick並編譯了Little Color Management System (LCMS)。如果使用安裝程序或軟件包,則可能已經是這種情況。但我從源頭上編譯。這與從源代碼安裝LCMS和重建ImageMagick(./configure; make; make install)一樣簡單。

在ImageMagick的下面能很好地重現精確的色彩:

convert FILENAME -profile /PATH_TO_PROFILE/sRGB.icm OUT.jpg

所以在RMagick我用下面的:

if @image.colorspace == Magick::CMYKColorspace 
    # Adjust the path as necessary 
    @image.color_profile ="/usr/local/share/ImageMagick-6.5.4/config/sRGB.icm" 
end 

@image.write("out.jpg") { self.quality = 85 } 
+0

任何想法在哪裏可以找到或如何使用ImageMagick 6.8.0安裝顏色配置文件?安裝它使用自制軟件,並找不到我的OS X上的任何* .icm文件。感謝您的其他非常有用的答案! – Javier 2013-02-11 20:57:47

+2

在Mac OS X上,您可以執行'brew install imagemagick --with-little-cms'以獲得使用lcms支持編譯的imagemagick。在所有plattform中,你可以這樣做:convert -list configure 如果安裝正確,代碼行應包含lcms – 2015-02-02 20:01:10

2

傳入的文件,在這種情況下,做 有一個配置文件。我會再調查一下 。我得到的顏色 配置文件丟失(?就像我在哪裏下載 他們ICC網站是沒有太大的幫助)

你是不是唯一一個感到困惑;我也是。 ImageMagick網站上的討論可能值得參考:Here據我瞭解,當使用的配置文件可以被識別(例如監視器配置文件)或嵌入到文件中時,可以正確地使用配置文件至少在Photoshop中可以完成TIFF和JPG,我認爲)。檢查例如這個:Here。祝你好運。

+0

接近,我想。看起來像Image Magick需要用'--with-lcms = yes'編譯並安裝了LCMS庫。當我有一刻我會試試這個。 – 2009-12-06 16:14:49

2

我發現誰的命令行的解決方案精美的工作,但RMagick解決方案對我無效。

爲了讓它在RMagick中起作用,我改爲使用Magick :: Image#add_format方法,根據文檔,它將允許您指定源和目標配置文件。它看起來像這樣:

if img.colorspace == Magick::CMYKColorspace 
    img.add_profile(RGB_COLOR_PROFILE) 
end 
1

RE:LCMS在CentOS 5.5,一定要下載並從源代碼編譯的最新LCMS(與百勝安裝)。否則,IM將不會在構建LCMS時發現LCMS,您會像我一樣抓住您的頭腦,想知道爲什麼LCMS不包含在IM代表庫中。

4

我花了很長時間嘗試使用RMagick和Rails從CMYK EPS轉換到RGB PNG。希望這將是使用的人:

def convert_image_from_cmyk_to_rgb(image) 
    #puts image.alpha? 
    if image.colorspace == Magick::CMYKColorspace 
    image.strip! 
    image.add_profile("#{Rails.root}/lib/USWebCoatedSWOP.icc") 
    image.colorspace == Magick::SRGBColorspace 
    image.add_profile("#{Rails.root}/lib/sRGB.icc") 
    end 
    image 
end 

您也可以下載ICC文件從Adobe直接在http://www.adobe.com/support/downloads/iccprofiles/iccprofiles_win.html

的唯一的事情我一直沒能蘇斯是如何保持透明。我想要使​​用的EPS具有透明背景,正在變成白色。不幸的是我不能做像image.transparent("white")這樣的東西,因爲我在圖像中有白色,我想保持白色。

如果我在上面的代碼中取消註釋puts image.alpha?,它將返回false

有誰知道我想要做什麼是可能與當前版本的RMagick,因爲我開始懷疑是否不支持導入CMYK EPS透明度。

謝謝!

+0

我的建議是在新問題中詢問有關透明度問題。 – 2011-07-26 16:44:09

+0

謝謝馬克。現在已經這樣做了http://stackoverflow.com/questions/6833496/rmagick-convert-cmyk-eps-to-rgb-png-maintaining-transparent-background – 2011-07-26 16:59:07

+0

編輯這一個問題,讓剩下的是隻是這個問題的答案 – 2011-07-31 17:26:04