以下是我的程序和参考图片。
程序 :
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);
参考图片:
我使用上面的程序为照片添加了一种透明的红色(带 alpha)。但我不清楚为什么照片变成了深红色。“理想结果”是由 Photoshop 制作的。我只是在原始照片之前添加了一个红色图层。而不是更改为低透明度和 MULTIPLY。
它们是不是相同的处理概念或我的程序有什么问题?它不能使用 Mode.MULTIPLY 来创建“理想结果”吗?有人可以给我一些意见吗?
谢谢谢谢非常感谢!