白い背景に対して特定の部分的に透明なRGBカラーの同等の不透明なRGBカラーを決定する方法


11

白い背景に対する不透明度を減らすことは、ベースカラーの使用可能な明るく彩度の低い色合いを見つけるための良い方法であることを発見しました。

例として、このオレンジ色の写真を撮ります。

オレンジ

下の行はバリアントを示しています。パーセンテージは不透明度です。

良い色合いを検索するときは、背景を白くして不透明度を下げるのは良いことですが、最終製品で同等の100%不透明なRGBカラーを使用したいのです。

ベースカラーと不透明度のRGB番号が既に選択されている場合、同等のRGB番号を計算または検索する方法を教えてください。

私はカラーピッカーを試しましたが、Illustratorでは少なくともベースカラーしか得られません。


コメントは拡張ディスカッション用ではありません。この会話はチャットに移動しました
ライアン

@JonasPraem質問に対する最近の編集は、あなたが求めていたものを適切に反映していますか?もしそうなら、私は質問を再開します。ありがとうございました!
好奇心あり

はい、行われた編集は私が探していたものを完全に反映しています
Jonas Praem '24

2
なぜこの質問は投票を取り下げるのですか?それは完全に有効な質問である。
フィリップ2018

3
元の質問は非常に強力な開発者のPOVで書かれていました。質問は、デザイナーにとってより理解しやすく、より正確になるように編集されました。私はデザイナーではなく開発者です。言語の壁にぶつかったようです。
ジョナスプラエム2018

回答:


8

式Y = 255-P *(255-X)を使用します。ここで、XはRGB番号、P =不透明度(0 ... 1)、Y =新しいRGB番号です。Xと同じように、100%不透明度で同じ外観を与える必要があります。白い背景に対して100p%の不透明度。

この式は一般的な不透明度の式であり、この特別な場合にのみ簡略化されています。

注:白い背景は、アートボードの白ではなく、白いオブジェクトである必要があります。白い背景オブジェクトはカラー管理されます。

Illustratorを使用していて、カラーピッカーを使用して色をコピーする場合は、部分的に透明なオブジェクトのコピーを作成し、ラスタライズします。ラスタライズダイアログで白い背景を選択します。これで、カラーピッカーが色を提供します。計算は必要ありません。



これをSassでスタックオーバーフローに実装する方法について質問があります。質問
Jonas Praem

RE:特殊なケース(つまり、白ではない)の場合、これはすべてのケースで機能するわけではありません。これは、式が1つのチャネル用であり、チャネルごとにこれを行う必要があるためです。または、式の特殊なケース「最初の255」ですか?
Yorik

2
@Yorik 2レイヤー画像の一般式はY = p * T +(1-p)* Bです。ここで、pはトップレイヤーの不透明度0 ... 1、T =トップレイヤーの色のRGB番号、BはRGBです。完全に不透明な最下層の数。Yは、完全に不透明な同等の色のRGB番号です。
user287001

一般式のJavaScript実装(thanks @ user287001):const afterOpacity = (fg,o,bg=[255,255,255]) => fg.map((colFg,idx)=>o*colFg+(1-o)*bg[idx])ここで、fgは前景色[r,g,b]、oは不透明度(0 ... 1)、bgは背景色(省略された場合のデフォルトは白)Eg afterOpacity([255,0,0],0.5)が与える[255,127.5,127.5]
Chris M

2

このためのツールを作成しました:https : //github.com/igrmk/blec。あなたの特定のケースでは、このように使用できます

blec white deadbeef

最後efは、アルファチャネルの16進表現です。またはあなたはこのようにそれを使うかもしれません

blec white deadbe:0.75

不透明度を小数で指定します。

提案された公式Y = 255 - P * (255 - X)は、ガンマ補正のために正確ではないことに注意してください。より正確なものはY = (255^G * (1 - P) + X^G * P) ^ (1 / G)Y結果のRGBコンポーネント値、XオーバーレイRGBコンポーネント値、Pその不透明度、Gガンマの値です。ガンマの最も一般的な値は2.2です。数式にガンマ補正を含める理由は、計算時にコンポーネントを線形空間に移動するためです。現在使用されているほとんどすべてのRGBスペースは、8ビットにより多くの色情報を配置するために、非線形の方法で色成分を解釈します。歴史的には、CRTディスプレイの非直線性を補正するために導入されました。

ブレンドにガンマ補正が重要である理由の例を次に示します。この赤い画像を撮りましょう

赤

そしてこの青い画像

青い

最初に完全に不透明な1つを取り、2番目の画像の不透明度をこのようにx軸に等しく設定します

白地に青

次に、ガンマ補正なしでブレンドします(ガンマ= 1)。

ガンマ= 1

ガンマ補正を有効にして同じことをしましょう(ガンマ= 2.2)

ガンマ= 2.2

ご覧のように、ガンマ補正を使用しない場合、より局所的な遷移があります。中央の色が明らかに暗い。ガンマ補正を使用すると、遷移と明度がはるかにスムーズになります。

最後のグラデーションは、ディザリングを使用して構築されます。

ディザ

画像には2色のピクセルしか含まれていませんが、青の確率は左の0から右の1に線形的に増加します。結果は、明度と遷移色の点で、ガンマ= 2.2のイメージに非常に近く見えます。遠くから見てみてください。そして、これはおそらく2色をブレンドすることから期待することです。この例では、文字通りそれらをaquarelleのように混合してブレンドします。そのため、特に不透明度が0.5に近い場合、ガンマはブレンドにとって非常に重要です。

最後に、不透明な赤と青のブレンドと、ガンマ補正の効果が最大になる0.5のアルファを比較してみましょう。

ガンマ= 1 ガンマ= 2.2 ディザリング

最初の画像はガンマ補正を使用せず、2番目の画像は2.2のガンマを使用し、3番目の画像はディザリングを使用しています。ご覧のとおり、最初の1つは他の2つとは大きく異なります。したがって、常にガンマ補正を使用することをお勧めします。適切な画像エディタを使用している場合は、おそらく安全であり、ガンマ補正はデフォルトで有効になっています。

ディザリングとブレンディングを比較するには、100%スケールで画像を見て、画像のすべてのピクセルが画面の正確に1ピクセルを占めるようにする必要があることに注意してください。これは、携帯電話を使用する場合にはほとんど当てはまりません。異なるスケールで画像を見る場合、おそらくアンチエイリアス処理された画像を見るでしょう。アンチエイリアスは、現時点ではガンマ補正を使用しないため、非常に不正確な結果になる可能性があります。Android 10のChrome 83とiOS 13の最新のSafariで確認できます。正しい方法で実行するには、リソースが多すぎると思います。したがって、非常にコントラストのあるノイズの多い画像を見ると、ディスプレイのガンマが実質的に1.8に減少します。

すべてのディスプレイが適切に調整されているわけではないことにも注意してください。ガンマが2.2の画像とディザリングが異なる画像を生成する画像のように感じる場合は、悪いニュースがあります。監視しているガンマはhttp://web.mit.edu/jmorzins/www/gamma/adilger/gamma.htmlで確認できます。ただし、モバイルデバイスを使用する場合は、アプリケーションを使用することをお勧めします。アンチエイリアスを使用すると、結果が非​​常に不正確になる可能性があるためです。

これらの写真を取得するためのコードはhttps://pastebin.com/fHYtWrMbです。


あなたは私よりも少なくとも1つのギアを持っていると思います。スタッキングガラスの例はあいまいです。何に対して積み上げましたか?何が見られ、どこで光が出入りしますか?ガンマ補正は、コンピュータとディスプレイの構造に基づいた理由でコンピュータにあります。物理的な色材ではないため、ガラスでは式がまったく明確になりません。
user287001

@ user287001指摘いただきありがとうございます。ガラスの例は本当に悪かった。物理的要因が多すぎるため、明確にするために検討できません。今はずっと良く見えます。
イゴールミクシキン

0

このすべての技術計算に行く必要はありません。代わりにスウォッチパネルを使用できます。グローバルオプションをオンにして、元のカラーをスウォッチとして保存します。

ここに画像の説明を入力してください

次に、カラーパネルを使用して、必要なパーセンテージを選択できます。これは透明度を使用せず、不透明です。

ここに画像の説明を入力してください

最終的な色合いのRGBまたは16進コードを確認する必要がある場合は、カラーパネルのrgbアイコンを押すと、RGB値と16進値を確認できます。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.