Android 在运行时反转位图
我正在尝试使用 Paint ColorFilter 反转位图 我使用此链接作为参考: http://www.mail-archive.com/[email protected]/msg47520.html
但它绝对没有效果 - 绘制位图通常你能告诉我我做错了什么吗?
定义浮点数组:
float invert [] = {
-1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, -1.0f, 1.0f, 0.0f,
1.0f, 1.0f, 1.0f, 1.0f, 0.0f
};
在构造函数中设置绘制
ColorMatrix cm = new ColorMatrix(invert);
invertPaint.setColorFilter(new ColorMatrixColorFilter(cm));
在 Draw() 方法中
c.drawBitmap(Bitmap, null, Screen, invertPaint);
引用编辑:我能够通过在绘制语句中进行绘制分配来使其工作:
ColorMatrix cm = new ColorMatrix(invert);
invertPaint.setColorFilter(new ColorMatrixColorFilter(cm));
c.drawBitmap(rm.getBitmap(DefaultKey), null, Screen, invertPaint);
但现在它渲染速度非常慢(可能是因为它每次都会设置一个复杂的矩阵)单帧)...当它采用相同的方法时,它工作有什么原因吗?
编辑2: 没关系!!!哈哈,问题是我有两个构造函数,而我只在其中一个构造函数中配置颜色滤镜...该过程仍然非常占用 CPU 资源,并会导致帧速率问题
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个旧线程。
然而:矩阵不适合透明抗锯齿图像的反转。
应该是:
This is an old thread.
However: The Matrix is not good for inversion of anti-aliased images with transparency.
Should be: