![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.6ベストアンサー
- 回答日時:
★アドバイス
・この質問は絵の具と同じ感じで色を混ぜ合わせるアルゴリズムですか?
そう解釈しましたので『半透明処理』で調べればよいと思います。
例:
http://eternalwindows.jp/graphics/bitmap/bitmap1 …→『アルゴリズム』
ここに色を混ぜ合わせる公式があります。→RGB方式
抜粋すると
『dest = src * (alpha / 255) + dest * (1 - (alpha / 255));』
です。これは赤・緑・青の1つの成分であるため3つ処理します。
詳しくは次のサイトなどを参考にして下さい。
http://www.sm.rim.or.jp/~shishido/toumei.html→『パレットによる半透明処理』
http://www13.plala.or.jp/kymats/study/MULTIMEDIA …→『半透明処理』
http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB% …→『アルファブレンド』
・ネット検索するときは『半透明』または『半透明処理』とか、
『アルファブレンド』『AlphaBlend』で調べます。
API関数では
http://msdn.microsoft.com/ja-jp/library/cc428300 …→『AlphaBlend』
がります。
考え方:
『黄色』と『緑色』を1:1で混ぜるとき(RGB方式)
黄色=250,240,0(これを背景と考える)
緑色=0,230,0(こちらを前景と考える)
となり alpha=128(50%) とすると
赤輝度= 0 * (alpha / 255) + 250 * (1 - (alpha / 255))=124
緑輝度=230 * (alpha / 255) + 240 * (1 - (alpha / 255))=177
青輝度= 0 * (alpha / 255) + 0 * (1 - (alpha / 255))=0
となります。
よって『黄色』と『緑色』を1:1の比(50%)で混ぜ合わせると
赤輝度=124
緑輝度=177
青輝度=0
↓
RGB=124,177,0
となります。
CYMも同じ考えて混ぜ合わせれば良いでしょう。
参考URL:http://eternalwindows.jp/graphics/bitmap/bitmap1 …
ご返答ありがとうございます。
>・この質問は絵の具と同じ感じで色を混ぜ合わせるアルゴリズムですか?
これはそうですが、それに半透明が関わってくるかどうかは
自分の知識ではまだ分からないのです・・・
その計算式(alpha=128(50%)で)だとたしかに
水色rgb( 0, 255, 255) と黄色rgb(255, 255, 0)の混合はrgb(128, 255, 128)になり、
明るい緑色(黄緑色)になるのですが、
(青色)rgb( 0, 0, 255) と(赤色)rgb(255, 0, 0) の混合はrgb(128, 0, 128)
になって理想としては紫っぽい色を期待してたのですが、暗い色になってしまい、
(黒色)rgb( 0, 0, 0) と(白色)rgb(255, 255, 255) の混合はrgb(128, 128, 128)
になって理想としては灰色(rgb(200, 200, 200)ぐらいの色です)を期待してたのですが、
これも暗い色になってしまいます・・・
やはりYanchさんが仰るように明るさ等を補正する必要があるのでしょうか?
それを具体的にご存知でしょうか?
No.7
- 回答日時:
> ご返答ありがとうございます。
> なるほど、一応緑色にはなってるわけですね。ただ暗いだけで。
> >明るさ等あるので、
> >より、忠実に再現したいなら、何か補正を掛けてあげる必要があると思います。
> その補正値は具体的にどのようになるか分かりますか?
> それはsnowizeさんが仰るように、色彩の勉強が必要なぐらいのことなのでしょうか?
色の補正については、追究していくと、切りがないので、掲示板で質問するのは難しいかと思います。
ご返答ありがとうございます。
そうですか・・・自分としては1,2程度の色の誤差なら構わないと思ってるのですが、
さすがに128と200の差があると見た目が違うので、、
その差を埋めるのはやっぱり難しい勉強が必要なのかなぁ
No.5
- 回答日時:
●RGBからCYMに変換する式
RGBとCYMの相互変換の式はむずかしくないと思います。
C←255-R
Y←255-B
M←255-G
で良いはずです。
●(水色)cym(255, 0, 0)と(黄色)cym(0, 255, 0)を1:1で混ぜた場合
> (((水色)cym(255, 0, 0) × 1) + ((黄色)cym(0, 255, 0) × 1)) ÷ 2
> =(cym(255, 0, 0) + cym(0, 255, 0)) ÷ 2
> =cym(255, 255, 0) ÷ 2
> =cym(128, 128, 0)
> になって(緑色)cym(255, 255, 0)にはならなくないですか?
> それともどこかおかしいところがあるのでしょうか?
この式だと、暗い緑色になってしまいますね。
色の要素は、CYMの三原色だけではなく、明るさ等あるので、
より、忠実に再現したいなら、何か補正を掛けてあげる必要があると思います。
ご返答ありがとうございます。
なるほど、一応緑色にはなってるわけですね。ただ暗いだけで。
>明るさ等あるので、
>より、忠実に再現したいなら、何か補正を掛けてあげる必要があると思います。
その補正値は具体的にどのようになるか分かりますか?
それはsnowizeさんが仰るように、色彩の勉強が必要なぐらいのことなのでしょうか?
No.4
- 回答日時:
例えば、
(紫色)cym(0, 0, 255)に(赤色)cym(0, 255, 255)を3:1で混ぜたら、
と言う計算なら、
三次元色空間を想像して、その2点間の値を取れば良いと思いますよ。
(((紫色)cym(0, 0, 255) × 3) + ((赤色)cym(0, 255, 255) × 1)) ÷ 4
=(cym(0, 0, 765) + cym(0, 255, 255)) ÷ 4
=cym(0, 255, 1020) ÷ 4
=cym(0, 63, 255)
こんな感じで近い物が得られると思います。
この回答への補足
あ、すいません・・・
snowizeさんが紹介してくれたサイト
http://homepage2.nifty.com/studio_AURK/ccconv/Co …
に書いてありました。
それで試してみます。
ご返答ありがとうございます。
なるほど、三次元での座標で考えるというのは
わかり易くて助かりました。ありがとうございます。
あと1つ疑問があるのですが、ここ(cym(0, 63, 255))から
光の三原色(RGB)rgb(?,?,?)に変換するにはどうすれば良いのでしょうか?
青とか緑とか対応が判明してる色なら変換できるのですが・・・
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?5a7ff87)
No.3
- 回答日時:
簡単な変換でしたら参考URLの計算式でいいと思いますよ。
めちゃくちゃ本格的にいきたい場合は、色彩のお勉強をするしかないかと^^;
自分は色彩検定3級とか持ってますが、ネタですしね。ほとんど。
参考URL:http://homepage2.nifty.com/studio_AURK/ccconv/Co …
この回答への補足
度々すいません・・・
新たに疑問に気づくのが返信してからという自分の悪い癖で、、
Yanchさんに対する質問(できればみなさんにも答えて頂きたいです)
なんですが、書く場所がないのでこの場所を貸してください。
ANo.4のYanchさんの計算式だと(水色)cym(255, 0, 0)と(黄色)cym(0, 255, 0)を
1:1で混ぜた場合の式は
(((水色)cym(255, 0, 0) × 1) + ((黄色)cym(0, 255, 0) × 1)) ÷ 2
=(cym(255, 0, 0) + cym(0, 255, 0)) ÷ 2
=cym(255, 255, 0) ÷ 2
=cym(128, 128, 0)
になって(緑色)cym(255, 255, 0)にはならなくないですか?
それともどこかおかしいところがあるのでしょうか?
No.2
- 回答日時:
光の三原色(RGB)と色の三原色(CYM)の対応は次のような感じ。
(黒色)rgb( 0, 0, 0)cym(255, 255, 255)
(青色)rgb( 0, 0, 255)cym(255, 0, 255)
(緑色)rgb( 0, 255, 0)cym(255, 255, 0)
(水色)rgb( 0, 255, 255)cym(255, 0, 0)
(赤色)rgb(255, 0, 0)cym( 0, 255, 255)
(紫色)rgb(255, 0, 255)cym( 0, 0, 255)
(黄色)rgb(255, 255, 0)cym( 0. 255, 0)
(白色)rgb(255, 255, 255)cym( 0. 0, 0)
色まぜアルゴリズムを作るなら、これに輝度とかを併せて計算すると良いと思いますよ。
色の合成だと、(緑色)cym(255, 255, 0)は(水色)cym(255, 0, 0)+(黄色)cym(0. 255, 0)
になりますけどね。
●記号の意味
R:Red:赤
G:Green:緑
B:Blue:青
C:Cyan:水色
Y:Yellow:黄色
M:Magenta:紫
この回答への補足
補足です。
自分の理想としては、
赤と青を混ぜたら紫(厳密には違うかもしれませんが)になって
その紫にさらに赤を混ぜたら違う色になって、その色に別の色混ぜたら・・・・・
というぐあいに、現実の絵の具のような結果のように
それをプログラム(PC上)で再現できるようにしたいです。
>色の合成だと、(緑色)cym(255, 255, 0)は(水色)cym(255, 0, 0)+(黄色)cym(0. 255, 0)
>になりますけどね。
この例だと、たしかに
(緑色)cym(255, 255, 0) = (水色)cym(255, 0, 0)+(黄色)cym(0. 255, 0)
なんですが、その緑色にさらに黄色を混ぜていったら現実の絵の具では
より黄色に近づいていくと思うのですが、そのような再現はできるものなのでしょうか?
ご返答ありがとうございます。
なるほど、その8色(黒青緑水赤紫黄白色)の対応は分かったのですが、
それ以外、例えばrgb(100, 150, 100)のcym(?,?,?)はどのようになるのでしょうか?
それは計算で出せるものなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 水の色を照明で無色にできますか? 4 2022/07/24 10:31
- マウス・キーボード Logicoolのキーボード G813について質問です。 専用のアプリケーションであるG hubでG 1 2022/05/10 12:59
- Visual Basic(VBA) ダブルクリックでセルの色を変える 1 2022/12/24 15:52
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Web・クリエイティブ CMYKロゴをガイドラインにないRGBで使用する際の色はどうするべき?? デザイナーです。 連携会社 1 2022/05/25 16:21
- その他(ソフトウェア) IndesignのGPUは色?CMYKなの?RGBなの? 1 2022/05/09 19:13
- ヘアケア・ヘアアレンジ・ヘアスタイル ヘアカラーの補色について 先日髪をハイライトでモノグレージュに染めました。一週間色落ちも含めて楽しめ 2 2023/08/28 13:02
- 小学校 算数の問題です 1000個の米つぶの中に、黄色のつぶが10個の割合ではいっている種類の米をA、600 1 2023/06/06 21:04
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
生年月日(yyyy/MM/dd) → 年齢...
-
直線と線分の交差判定について...
-
Canny法に用いる閾値の決定法に...
-
角が丸部分を画像上から検出す...
-
姿勢センサでプロジェクタの台...
-
C言語 極座標変換
-
Windows Media Playerを開くと...
-
Google ColaboでGUI作成
-
String^の^自体が何を意味して...
-
iCloudフォトライブラリ内の画...
-
Ps+のフリープレイでDestiny2の...
-
iTunesの同期、別のパソコンで...
-
unix-c と linux-c の違いは?
-
C言語のシューティングゲームを...
-
Linux fopenについて!!
-
公開鍵暗号のソースコード
-
人工知能の勉強
-
C言語で自動販売機のプログラ...
-
ituneを複数のPCにインストール...
-
VX-works
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
OpenCVで寸法測定
-
色混ぜのアルゴリズム
-
画像をFFTした際のスペクトル分...
-
生年月日(yyyy/MM/dd) → 年齢...
-
行列の積の処理を高速化したい
-
魚眼画像について
-
C言語 極座標変換
-
Canny法に用いる閾値の決定法に...
-
姿勢センサでプロジェクタの台...
-
VB BitmapをExcelに貼り付け 大...
-
画像の2値化について
-
C言語の作成依頼です。
-
直線と線分の交差判定について...
-
線幅の測定
-
[緊急] 添付画像にある,黒枠内...
-
リアルタイムで多数の3角形ポリ...
-
VBを使った自作の逆FFT
-
画像の拡大
-
量子コンピュータで四則演算
-
2枚の画像間の色ヒストグラム距...
おすすめ情報