rup*_*pps 5 transparency android porter-duff android-canvas
我的应用程序允许用户编辑图像.在"切片"中编辑图像:用户选择要编辑的大图像的一部分(1),用户编辑它(2,3),然后当用户完成时,将编辑的切片复制回原始图像上. image(4).您可以在下图中看到简化的过程.

要编辑切片,我创建一个裁剪区域的位图,这是用户编辑的位图(2,3).
当用户完成时,我只是drawBitmap()切片进入原始图像(4).这个过程比较复杂,因为原始图像有一个转换矩阵,我必须反转等,但为了简单起见,这就足够了.
当用户清除切片(3)中的一些像素时出现问题.我找不到合适的PorterDuff / Paint模式,因此编辑后的切片会替换原始图像上的部分,即使是透明像素也是如此.我想要的是得到(4)所示的结果
到目前为止,我最好的选择是使用PorterDuff.SRC,但如下图所示,透明像素在原始图像中变为黑色.如果我将paint的颜色设置为Transparent,则整个结果为黑色.
mBlitPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
mImageCanvas.drawBitmap(mArenaBitmap, invertedMatrix, mBlitPaint);
Run Code Online (Sandbox Code Playgroud)
我也试过SRC_OVER,mImageCanvas.drawARGB (0xff,0,0,0),但没有运气.在第一种情况下,透明像素被忽略.在第二个中,透明像素被涂成黑色.

| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |