Объединить два изображения с прозрачным градиентом

Я пытаюсь применить маску градиента к слою размытия в Android. Что-то вроде этого:

введите здесь описание изображения

Я пытаюсь использовать этот код:

Bitmap mutable = Bitmap.createBitmap(lebg.getWidth(), lebg.getHeight(), Bitmap.Config.ARGB_8888);  
Canvas canvas = new Canvas(mutable);  
Paint paint = new Paint();  
paint.setFilterBitmap(false);   
canvas.drawBitmap(lebg, 0, 0, paint);  
canvas.drawBitmap(leblur, 0, 0, paint);  
paint.setXfermode(new PorterDuffXfermode(Mode.DST_OUT));  
canvas.drawBitmap(mask, 0, 0, paint);

Есть идеи?

Спасибо!

Первое изображение — это слой размытия. Второе изображение — исходный слой. Третье изображение — слой маски. Последнее изображение является изображением результата.


person noahrod    schedule 15.06.2012    source источник
comment
stackoverflow.com/a/10028267/538169   -  person pawelzieba    schedule 15.06.2012
comment
@pawelzieba На самом деле я использую эту функцию размытия, чтобы получить первое изображение, у меня уже есть первые 3 изображения, я просто хочу получить последнее.   -  person noahrod    schedule 16.06.2012
comment
@MichałK Да, я пытался использовать этот код: stackoverflow .com/questions/4159959/, но прозрачные пиксели превращаются в черные пиксели. и я уверен, что устанавливаю растровое изображение с альфой. (Я пробовал ALPHA_8 и ARGB 8888)   -  person noahrod    schedule 16.06.2012
comment
Добавьте свой код, пожалуйста, трудно что-то предложить, не видя вашего кода. Но +1 за фотки ;)   -  person Michał Klimczak    schedule 16.06.2012
comment
@MichałK Готово, извините, я здесь новенький, спасибо за совет :)   -  person noahrod    schedule 16.06.2012
comment
Я не очень хорошо разбираюсь в коде Android, но мне кажется, что прямо сейчас вы сначала рисуете фон на свой холст, затем рисуете над ним размытый передний план (что означает, что фон будет полностью закрыт и потерян) и затем вы применяете градиент к альфа-каналу холста, что означает, что вы получите прозрачную дыру посередине. Я думаю, вам нужно использовать второй временный Paint, на котором вы рисуете размытый слой и к которому вы применяете маску градиента. Затем вы рисуете этот временный слой (с отверстием) поверх исходного изображения.   -  person Quasimondo    schedule 21.06.2012