[解決済み] RGBAカラーをRGBに変換する
2022-03-08 23:03:50
質問
RGBAカラー・タプル、例えば(96, 96, 96, 202)を対応するRGBカラー・タプルに変換する方法は?
編集してください。
私が欲しいのは、白色の背景で視覚的にRGBAタプルに最も近いRGB値を取得することです。
どのように解決するのですか?
ヨハネスさんの回答が正しいので、upvoteしました。
* 私の最初の回答が正しくなかったというコメントがいくつか寄せられています。 アルファ値が正規値から反転している場合はうまくいきました。 しかし、定義上、これはほとんどの場合うまくいきません。 そこで、以下の数式を通常のケースで正しくなるように更新しました。 これは結局、以下の @hkurabko さんの答えと同じになります *。
しかし、より具体的な答えは、不透明な背景色(または「マット」と呼ばれる)に基づく実際の色の結果にアルファ値を組み入れることです。
このためのアルゴリズムがあります( これ wikipediaのリンク)。
-
RGBA 値がすべて 0 から 1 の間になるように正規化します - これを行うには、各値を 255 で割ります。 この結果を
Source
. -
マットカラー(黒、白など)も正規化します。 この結果を
BGColor
注 - 背景色も透明である場合、この操作のためのソースRGBを得るために、まずそのための処理を再帰する必要があります(再び、マットを選択します)。 -
さて、変換は次のように定義されます(ここでは完全な擬似コードで!)。
Source => Target = (BGColor + Source) = Target.R = ((1 - Source.A) * BGColor.R) + (Source.A * Source.R) Target.G = ((1 - Source.A) * BGColor.G) + (Source.A * Source.G) Target.B = ((1 - Source.A) * BGColor.B) + (Source.A * Source.B)
の最終的な0〜255の値を取得するために
Target
正規化された値をすべて255倍し、合計値が1.0を超える場合は255で上限を設定します(これは露出オーバーであり、画像全体の処理など、より複雑なアルゴリズムで対処します)。
EDIT: 質問の中で、白い背景にしたいと言っていますが、その場合は BGColor を 255,255,255 に固定します。
関連
-
[解決済み] TextViewの文字色をコードで設定する方法は?
-
[解決済み] imagescがカラーマップを変更する理由 (MATLAB)
-
[解決済み] 平均像減算の仕組みは?
-
[解決済み] アニメーションGIFの代替品にはどんなものがありますか?[クローズド]
-
[解決済み] RGBから16進数、16進数からRGB
-
[解決済み] RGBカラーの知覚的な明るさを決定する公式
-
[解決済み】白の上のRGBをRGBAに変換する
-
[解決済み] RGB値ではなく、16進数のカラー値を取得する方法は?
-
[解決済み] HTML5 アップロード前に画像をプリリサイズする
-
[解決済み】FFmpegで画像から動画を作成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Matlabでどのようにimwarp転送ポイント?
-
[解決済み] CSSによるフォールバック画像
-
[解決済み] Goで生成されたアニメーションGIFがウィンドウズで動かない
-
[解決済み] Markdownで画像サイズを変更する
-
[解決済み] イメージからDockerfileを生成するには?
-
[解決済み】linuxでコマンドラインから一連の画像をPDFに変換するにはどうすればいいですか?[クローズド]
-
[解決済み】白の上のRGBをRGBAに変換する
-
[解決済み] Facebookでプレビューとして表示されるWebサイトの画像を設定するにはどうすればよいですか?
-
[解決済み】FFmpegで画像から動画を作成する方法は?
-
[解決済み] SVGはビットマップイメージの埋め込みに対応していますか?