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

私が議論できなかった唯一のことは、透明性を維持する方法です. 使用したいEPSの背景は透明で、白くなっています。image.transparent( "white" )残念ながら、白のままにしたい画像に白があるので、私は何かをすることはできません。

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

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

ありがとう!

4

1 に答える 1

0

RMagick のpaint_transparentコマンドについて知っていますか?

image.paint_transparent(color, opacity=TransparentOpacity, invert=false, fuzz=img.fuzz) -> image

説明カラーに一致するすべてのピクセルの不透明度の値を、不透明度で指定された値に変更します。invert が true の場合、色が一致しないピクセルを変更します。

引数

color色の名前またはピクセルのいずれか。

opacity新しい不透明度の値。不透明度の値、または 0 から QuantumRange までの数値のいずれかです。デフォルトはTransparentOpacityです。

invert true の場合、ターゲット カラーではないすべてのピクセルを変更します。

fuzz デフォルトでは、ピクセルは正確に一致する必要がありますが、正の値を渡すことで許容レベルを指定できます。

戻り値新しい画像

Magick API透明ペイントイメージ

この Railscasts のビデオ http://railscasts.com/episodes/374-image-manipulationを見たことがありますか? 彼は github のロゴを使用して、透明度のあるスタンプを作成します。

于 2013-10-05T21:14:29.373 に答える