マスクを別のビットマップと一緒に使用しています。画像でわかるように、残念ながら、マスキングの結果、わずかに黒い境界線が表示されましたが、操作は正常に実行されます。
この境界線を削除するにはどうすればよいですか?ソース画像にはありません。
使用しているコードを投稿します。
public Bitmap mask(Bitmap source) {
Bitmap targetBitmap = Bitmap.createBitmap(getWidth(),getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(targetBitmap);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
paint.setAntiAlias(true);
paint.setDither(true);
canvas.drawBitmap(source, 0, 0, null);
canvas.drawBitmap(getMask(), 0, 0, paint);
paint.setXfermode(null);
return targetBitmap;
}
ここで、getMask()は、パズルの図を表すビットマップを返します。私はあなたの助けを受け取りたいです、すべてに感謝します
私の英語でごめんなさい:-)
アップデート:
黒い境界線は私がこの写真で指摘しているものです:
アップデート:
変換のシーケンスを配置します。3番目の画像は最初の画像と同じですが、色はありません。問題はパズルの黒い縁です。もっと明確にしたいと思います: