目次→http://1studying.blogspot.jp/2017/07/c-magicknetmokuzi.html#kuw05
「Magick.NET」の使い方は
https://github.com/dlemstra/Magick.NET/tree/master/Documentation
に載っています
では続きを始めます。
「色深度」について
「色深度」は画像の1画素が持つ階調(データ量)の事です。
ビット深度とも呼ばれます。
・「RGB、CMYK、グレースケール」では、
参照DLLが「Q8」なら「色深度8bit(0〜255)256階調」
参照DLLが「Q16」なら「色深度16bit(0〜65535)65536階調」
1画素あたり、
RGBは「×3色分」
CMYKは「×4色分」
グレースケールは「×1色分」
アルファチャンネルがある場合は「+1色分」
のデータ量を必要とします。
「RGB、各色深度8bit」の「24bit画像」を「トゥルーカラー」と呼びます。
・「モノクロ2階調」では、
「色深度1bit(0〜1)2階調」
となります。
「Magick.NET」では「デプス」情報で色深度をbitで確認できます。
myMagick.Depth
色の指定
「Magick.NET」には色の指定方法がたくさん存在します。
更に、カラータイプの違いによっても指定の仕方が変化します。
ここで一度整理します。
//「"xc:rgb(0,100%,0)"」を使用したパターン using (var myMagick = new ImageMagick.MagickImage("xc:rgb(0,100%,0)", 150, 150)) { pictureBox1.Image = myMagick.ToBitmap(); //pictureBox1へ表示 } //「new ImageMagick.MagickColor("rgb(0,100%,0)")」を使用したパターン using (var myMagick = new ImageMagick.MagickImage(new ImageMagick.MagickColor("rgb(0,100%,0)"), 150, 150)) { pictureBox1.Image = myMagick.ToBitmap(); //pictureBox1へ表示 }カラー指定に「"xc:rgb(0,100%,0)"」や
「new ImageMagick.MagickColor("rgb(0,100%,0)")」を使用しています。
↓どちらで表示しても表示はこうなります。
コードの2行目の
「"xc:rgb(0,100%,0)"」の部分や
コードの7行目の
「new ImageMagick.MagickColor("rgb(0,100%,0)")」の部分は
様々な「色の指定の仕方」があります。説明します。
色の指定の仕方1(RGB)
通常のRGB値を表現する為に、
「"xc:lime"」や「"xc:rgb(0,100%,0)"」、
「new ImageMagick.MagickColor("lime")」、
「new ImageMagick.MagickColor("rgb(0,100%,0)")」、
のような指定の仕方が可能です。以下の形で色を指定します。
"lime" //↓3種類とも「"rgb(0,100%,0)"」と同じ意味となります。 "#0f0" "#00ff00" "#0000ffff0000" //↓使われているDLLが「Q8」でも「Q16」でも、 // 「255」が「100%」MAXとなります 。 "rgb(0,255,0)" "rgb(0,100%,0)" //%指定はfloat形式で書く事も出来ます。 "rgb(0.0%,100.0%,0.0%)"「"rgb(0,255,0)"」のように指定した場合、
DLLが「Q8」でも「Q16」でも「255」が指定の上限値となります。
但しDLL「Q16」を使用して、
「new ImageMagick.MagickColor()」の引数をstringを使わないで直接指定した場合、
new ImageMagick.MagickColor(0, 65535, 0)のように「65535」を上限値として書く形になるので注意して下さい。
この場合、「ImageMagick.Quantum.Max」を使って
new ImageMagick.MagickColor(0, ImageMagick.Quantum.Max, 0)のように書いておけば「Q8」でも「Q16」でも常に上限値が入り、安心できます。
色の指定の仕方2(アルファ)
RGBA値はRGBにアルファを追加して表現します。。
アルファは必ず「0.0」(透明)〜「1.0」の間で表示させます。
(「#」表記の場合のみ「0〜f」、「00〜ff」、「0000〜ffff」も可)
以下の形で色を指定します。
//↓2種類とも「"rgba(0, 100%, 0, 0.5)"」と同じ意味となります。 "#00ff007f" "#0000ffff00007f7f" //↓使われているDLLが「Q8」でも「Q16」でも、 // RGB値は「255」が「100%」MAXとなります 。 // アルファは必ず「0.0」(透明)〜「1.0」で指定します。 "rgba(0, 255, 0, 0.5)" "rgba(0, 100%, 0, 0.5)" "rgb(0.0%, 100.0%, 0.0%, 0.5)" // //「"none"」と「"transparent"」は //「"rgba(0, 0, 0, 0.0)"」と同じです。完全な透明を指します。 "none" "transparent" "rgba(0, 0, 0, 0.0)"rgbaではstringで指定しない方法として、
「ImageMagick.MagickColors.Lime」のような指定の仕方も用意されています。
色の指定の仕方3(CMYK)
CMYKは以下のように指定します。
//CMYK cmyk(25%, 50%, 75%, 100%) //CMYK+アルファ cmyka(25%, 50%, 75%, 100%, 0.5)//半透明
色の指定の仕方4(グレー)
グレーは「gray(50%)」のように指定します。
アルファ付きの場合は「graya(50%, 0.5)」の形で指定します。
「"gray0"」〜「"gray100"」や
RGB値それぞれ同じ値にしてもグレースケールとなるようです。(未確認)
//グレー0% // 「"gray0"、"grey0"、"rgb(0%,0%,0%)"、 // "rgb(0,0,0)"、"#000000"」等もあり? "gray(0%)" "gray(0%, 0.5)"//半透明 //グレー50% // 「"gray50"、"grey50"、"rgb(50%,50%,50%)"、 // "rgb(127,127,127)"、"#7f7f7f"」等もあり? "gray(50%)" "gray(50%, 0.5)"//半透明 //グレー100% // 「"gray100"、"grey100"、"rgb(100%,100%,100%)"、 // "rgb(255,255,255)"、"#ffffff"」等もあり? "gray(100%)" "gray(100%, 0.5)"//半透明
色の指定の仕方5(ICCプロファイル、デバイス)
ICCプロファイルを加味した色を指定できます。
デバイスを加味した色を指定もできます?
この辺の指定は詳しく調べきれませんでした。
//ICCプロファイルでの色指定 "icc-color(cmyk, 0.25, 0.50, 0.75, 1.00)" "icc-color(rgb, white)" //デバイスでの色指定 "device-gray(0.5)" "device-rgb(0.5, 1.0, 0.0)" "device-cmyk(0.25, 0.50, 0.75, 1.00) "
色の指定方法について、
より細かい色の指定方法は以下のサイトに記載されています。
https://www.imagemagick.org/script/color.php
「Photoshop」上での
「カラーモード」と「ICCプロファイル」
「Photoshop」では主に、
「RGB」「CMYK」「Gray」「2値」の「カラーモード」で作業を行います。
「カラーモード」を変更する時は、
「ICCプロファイル」のテーブルを使用して色変換を行います。
「ICCプロファイル」は
画像ファイルに埋め込まれた物や、「Photoshop」で設定してある物が使用されます。
「Magick.NET」では主に、
「Magick画像」の「カラータイプ」情報と「デプス」情報で、
「カラーモード」を推察する形となります。
「ColorType」情報が
「TrueClor」の場合→「RGB」モード
「ColorSeparation」の場合→「CMYK」モード
「Palette」で
「Depth」情報が
「8bit」の場合→「Gray」モード
「1bit」の場合→「2値」モード
となります。
画像情報について詳しくは、
C# Magick.NETを使ってみる。補足 画像情報取得
のリンク先で説明しています。
http://1studying.blogspot.jp/2017/07/c-magicknetmokuzi.html#kuw04
Photoshop上でのカラーモードとICCプロファイル
については以下のリンク先で説明しています。
http://1studying.blogspot.jp/2017/07/c-magicknetmokuzi.html#kuw06
「TrueClor」の場合→「RGB」モード
「ColorSeparation」の場合→「CMYK」モード
「Palette」で
「Depth」情報が
「8bit」の場合→「Gray」モード
「1bit」の場合→「2値」モード
となります。
画像情報について詳しくは、
C# Magick.NETを使ってみる。補足 画像情報取得
のリンク先で説明しています。
http://1studying.blogspot.jp/2017/07/c-magicknetmokuzi.html#kuw04
Photoshop上でのカラーモードとICCプロファイル
については以下のリンク先で説明しています。
http://1studying.blogspot.jp/2017/07/c-magicknetmokuzi.html#kuw06
C# Magick.NETを使ってみる。ICCプロファイル変換
については以下のリンク先で説明しています。
http://1studying.blogspot.jp/2017/07/c-magicknetmokuzi.html#kuw07
0 件のコメント:
コメントを投稿