以下は私のプログラムと参考画像です。
プログラム :
int width = src.getWidth();
int height = src.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas (bitmap);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setDither(true);
canvas.drawBitmap(src, 0, 0, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY));
paint.setColor(Color.RED);
paint.setAlpha(35);
canvas.drawRect(0, 0, width, height, paint);
参考画像:
上記のプログラムを使用して、写真に明るい透明な赤色(アルファ付き)を追加しました。しかし、なぜ写真が真っ赤に変わったのかはよくわかりません。「理想の結果」は Photoshop で作られます。元の写真の前に赤いレイヤーを追加するだけです。そして、透明度を低くして乗算します。
それらは同じ処理概念ではありませんか、それとも私のプログラムに何か問題がありますか? Mode.MULTIPLY を使用して「理想的な結果」を作成することはできませんか? 誰か私に意見を言ってもらえますか?
ありがとう ありがとう どうもありがとう!