如何解决Porterduff模式相乘
我想对PNG图片使用Porterduff乘法模式,但是背景变成了黑色,只有PNG扩展图片中的背景变成了黑色,我该如何解决?
当我使用所需的乘法模式时,背景应该是透明的。
这行代码不起作用:
view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
我本人是按如下方式编写代码的,但是它没有用,也没有显示任何图片。
private Bitmap MultiplyBitmap(Bitmap bitmapmultiply){
Bitmap bitmap = Bitmap.createBitmap(bitmapmultiply.getWidth(),bitmapmultiply.getHeight(),Bitmap.Config.ARGB_8888);
Canvas cnvs = new Canvas(bitmap);
Paint pnt = new Paint();
pnt.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
cnvs.drawBitmap(bitmapmultiply,pnt);
Bitmap multiplybitmap = Bitmap.createBitmap(bitmapmultiply.getWidth(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(multiplybitmap);
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmapmultiply,null);
canvas.drawBitmap(bitmap,paint);
return multiplybitmap;
}
如何使用Java删除黑色背景?谢谢
解决方法
请参考Android网站上的PoterDuff.Mode链接,您可以在其中找到很多示例。
您可以尝试这样的操作(只需根据您的需要修改代码即可):
科特琳
val bmpDrawable = bmp.toDrawable(res)
bmpDrawable = DrawableCompat.setTint(bmpDrawable,Color.BLACK)
val tintedBmp = bmpDrawable.bitmap
return jokeDao.insert(entity.toDbJoke())
Java
Drawable bmpDrawable = bmp.toDrawable(res)
DrawableCompat.setTint(bmpDrawable,Color.BLACK)
Bitmap tintedBmp = bmpDrawable.bitmap
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。