1

Javaプログラム(アプレットやAndroidなどではなく「通常の」プログラム)の場合、他の画像の上にロードして描画する透明度のあるPNGがあり、完全に正常に機能しています。さて、それらの下に他の画像がない場合(それが問題ではないかどうかの判断は問題ではなく、それぞれのコードはすでに機能するように実装されています)、それらを不透明にしたいのですが、単に設定するという意味ではありません背景色; 関連するpngソースファイルは完全に色付けされており、不透明度(アルファ値)が低下しているだけなので、すべての色の不透明度を単純に100%に上げても問題ないと思います。それを行うコマンド。それを行うための好ましい方法とこれまでのところ対象を絞った方法は、それらを BufferedImage に描画してからそれぞれ変更することですが、次のように述べています。

TLDR:不透明度が100%未満の.pngからの画像(写真全体で同じ値)、Javaで不透明にする方法、できればBufferedImageを使用するか、さらに単純にする方法

ご回答ありがとうございます。

4

1 に答える 1

2

RescaleOpアルファ コンポーネントを完全に不透明にすることができます。

float[] scales = { 1f, 1f, 1f, 0f };  // R, G, B, A
float[] offsets = {0f, 0f, 0f, 255f};   // R, G, B, A
RescaleOp rescaler = new RescaleOp(scales, offsets, null);
BufferedImage opaque = rescaler.filter(original, null);

詳細については、この Java 2D チュートリアルを参照してください。

于 2013-08-12T09:00:28.843 に答える