RMagickを使用してCMYK画像をRGBに適切に変換する

imagemagick rmagick ruby
RMagickを使用してCMYK画像をRGBに適切に変換する

私は色変換を行うために以下を使用しています

    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)

そして、色は優れていますが、まだオフです。

  9  7


ベストアンサー

ありがとう、ペッカ、あなたは私に答えを教えてくれました(+1)。

Little Color Management System(LCMS)をインストールしてImageMagickをコンパイルする必要があります。 インストーラーまたはパッケージが使用された場合、これはすでに当てはまる場合があります。 しかし、私はソースからコンパイルしていました。 ソースからLCMSをインストールし、ImageMagickを再構築する( ./configure; make; make install)のと同じくらい簡単でした。

ImageMagickでは、正確な色を再現するために以下がうまく機能します。

ファイル名変換-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 }

11


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ファイルは、http://www.adobe.com/support/downloads/iccprofiles/iccprofiles_win.htmlからアドビから直接ダウンロードできます。

私が理解できなかったのは、透明性を維持する方法だけです。 使用したいEPSの背景が透明で、これが白になります。 残念ながら、私は白のままにしておきたい画像に白があるので、 `image.transparent(” white “)`のようなことはできません。

上記のコードで「puts image.alpha?」のコメントを外すと、「false」が返されます。

私がやろうとしていることがRMagickの現在のバージョンで可能かどうかは誰にもわかりますか?透明性のあるCMYK EPSのインポートがサポートされていないのではないかと思い始めています。

ありがとうございます。

4


_
この場合、着信ファイルにはプロファイルがあります。 さらに調査します。 カラープロファイルで迷子になりました(どこでダウンロードしますか? ICCサイトはあまり役に立ちませんでした)
_

混乱しているのはあなただけではありません。私もいた。 ImageMagickのサイトには、次の内容をふるいにかける価値があるかもしれない議論があります。使用するプロファイルが特定できる場合、プロファイルを適切に操作することが可能です(例: モニタープロファイル)またはファイルに埋め込まれています(少なくともPhotoshopのTIFFとJPGで実行できると思います)。 確認してください これ:http://kb2.adobe.com/cps/321/321382.html [ここ]。 がんばろう。

2


The Whoのコマンドラインソリューションはうまく機能しましたが、RMagickソリューションはうまくいきませんでした。

RMagickで機能させるには、代わりにMagick

Image#add_formatメソッドを使用する必要がありました。このメソッドでは、ドキュメントによると、ソースと宛先のプロファイルを指定できます。 それはこのように見えます:

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

2


RE:Centos 5.5上のLCMS。必ず最新のLCMSをソースからダウンロードしてビルドしてください(vs. yum install)。 そうしないと、IMはビルド時にLCMSを見つけられず、なぜLCMSがIMデリゲートライブラリに含まれていないのかと疑問に思うでしょう。

1


タイトルとURLをコピーしました