我一Canvas
开始就有一个对象。我需要根据当前颜色更改某些像素的颜色。我怎样才能以适当的方式做到这一点?
细节:
我有自己的课程从ImageView
. 在onDraw(Canvas canvas)
方法中,我用第三方类绘制了一些东西,并且只有Canvas
带有结果的对象。之后我需要根据当前颜色更改某些像素的颜色。
我一Canvas
开始就有一个对象。我需要根据当前颜色更改某些像素的颜色。我怎样才能以适当的方式做到这一点?
细节:
我有自己的课程从ImageView
. 在onDraw(Canvas canvas)
方法中,我用第三方类绘制了一些东西,并且只有Canvas
带有结果的对象。之后我需要根据当前颜色更改某些像素的颜色。
假设你有 android.graphics.Canvas
对象被调用canvas
并且X
&Y
是你想要改变像素的点,所以你去
称呼 :
canvas.drawPoint(X, Y, paint);
这是你如何初始化类的对象,android.graphics.Paint
即绘画
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
在此链接上搜索更多以更改不同位置的多个像素,有很多功能可以帮助您实现您想要的。好运 :-)
我建议查看Faster way to set a (PNG) bitmap color 而不是逐像素设置。它具有逐像素获取和设置位图颜色的代码(在问题中),以及对逐像素方法的替代方法的建议(在答案中)。也可能有用:Android 中 Bitmap 的方法 getPixels 的解释。
可能有十几种方法可以做到这一点。如果您想使用 Canvas 方法,有一种方法可以绘制到 Bitmap 对象。然后,您可以将对象绘制到另一个 Canvas。Bitmap 对象也可能具有修改像素的功能。
位图还可以让您将副本复制到缓冲区中,如果您知道像素是如何存储的,那将是一种非常快速的图像处理方式。我不确定 Canvas 本身是否有