2017-10-30 65 views
0

具体的には、RubyプラットフォームのCMYK値(おそらくISO Coated v2の領域)をRGB値(おそらくsRGBの領域)に変換したいと思います)。ImageMagickで色を変換する(画像ではない)

ImageMagickはいい場所のように思えましたが、LittleCMSが移植されてRubyで動作する可能性があると聞いてきました。

もう一度、イメージファイルではなく単一のカラーを変換することを検討しています。何か案は? ImageMagickので

+0

あなたはhttps://github.com/halostatue/colorを見ましたか? – msanford

+0

@msanford私はやったと思いますが、使用例は見つかりませんでした。チュートリアル/ APIについて知っていますか? – sambecker

+0

いいえ、テストをチェックして実装方法を確認できます。https://github.com/halostatue/color/blob/master/test/test_cmyk.rb – msanford

答えて

1

、次の操作を実行できます。

convert xc:"cmyk(0,255,255,0)" -colorspace sRGB -format "%[pixel:u.p{0,0}]\n" info: 
red 

convert xc:"cmyk(0,255,255,0)" -profile /Users/fred/images/profiles/USWebCoatedSWOP.icc -profile /Users/fred/images/profiles/sRGB.icc -format "%[pixel:u.p{0,0}]\n" info: 
srgb(93%,11%,14%) 
+0

これは非常に有望ですが、私は端末で次のエラーを受け取ります。 'convert: 'sRGB' @ error/convert.c/ConvertImageCommand/3251'。ドキュメント(https://www.imagemagick.org/script/convert.php)は、「変換」は色変換ではなく画像変換用であることを示唆しています。何か案は? – sambecker

+0

ImageMagickのバージョンとプラットフォームは何ですか?構文の違いがあります。 IMの非常に古いバージョンでは、-colorspace sRGBをRGBで置き換えてみてください。どのコマンドからエラーが出されましたか? 2番目のコマンドで自分のパスではなくプロファイルに自分のパスを入れてください。このコマンドは、カラーを1ピクセルイメージに変換してから、カラースペースを変換し、作成した1ピクセルイメージを保存せずにピクセルカラー値を読み込みます。 – fmw42

+0

私はMacOS Sierra 10.12上で、私はHomebrewを通してインストールしたImageMagick lcmsは何らかの理由でデリゲートとして表示されませんが、-little-cmsを使用しています。 – sambecker

1

あなたがsRGBで、より大きな 桁数を確保するためのフォーマットで微調整できるもの(X%で、Xの%、Xの%)

があります

異なるIMバージョンの可能性があります。 IM 7.0.7.8はsrgb(93.0648%、11.1254%、14.1741%)を示しています。 IM 6.9.9.20は整数を示しています。私はIM 6コマンドラインに-precision 4を追加しようとしましたが、それでも整数を取得します。より精度を上げるには、txt:出力形式を解析する必要があります。解析せずに例えば

convert xc:"cmyk(0,255,255,0)" -profile /Users/fred/images/profiles/USWebCoatedSWOP.icc -profile /Users/fred/images/profiles/sRGB.icc txt: 
# ImageMagick pixel enumeration: 1,1,65535,srgb 
0,0: (60990,7291,9289) #EE3E1C7B2449 srgb(93%,11%,14%) 

ですから(60990,7291,9289)

vals=`convert xc:"cmyk(0,255,255,0)" \ 
-profile /Users/fred/images/profiles/USWebCoatedSWOP.icc \ 
-profile /Users/fred/images/profiles/sRGB.icc txt: |\ 
tail -n +2 | sed -n 's/^.*[(]\(.*\)[)][ ]*\#.*$/\1/p'` 
red=`echo $vals | cut -d, -f1` 
green=`echo $vals | cut -d, -f2` 
blue=`echo $vals | cut -d, -f3` 
red=`convert -precision 4 xc: -format "%[fx:100*$red/quantumrange]" info:` 
green=`convert -precision 4 xc: -format "%[fx:100*$green/quantumrange]" info:` 
blue=`convert -precision 4 xc: -format "%[fx:100*$blue/quantumrange]" info:` 
color="srgb($red%,$green%,$blue%)" 
echo "$color" 
srgb(93.06%,11.13%,14.17%) 

、すなわち、括弧内(IM Q16用)の16ビット値を解析する必要があります有効数字の桁数は-precisionを調整します。

注記:IM 7では、-precisionは機能します。

magick xc:"cmyk(0,255,255,0)" -profile /Users/fred/images/profiles/USWebCoatedSWOP.icc -profile /Users/fred/images/profiles/sRGB.icc -format "%[pixel:u.p{0,0}]\n" info: 
srgb(93.0648%,11.1254%,14.1741%) 

magick -precision 4 xc:"cmyk(0,255,255,0)" -profile /Users/fred/images/profiles/USWebCoatedSWOP.icc -profile /Users/fred/images/profiles/sRGB.icc -format "%[pixel:u.p{0,0}]\n" info: 
srgb(93.06%,11.13%,14.17%) 

magick -precision 2 xc:"cmyk(0,255,255,0)" -profile /Users/fred/images/profiles/USWebCoatedSWOP.icc -profile /Users/fred/images/profiles/sRGB.icc -format "%[pixel:u.p{0,0}]\n" info: 
srgb(93%,11%,14%) 
関連する問題