2012-09-28 97 views
7

我有一个Canvas对象在开始。我需要根据当前的颜色改变一些像素的颜色。我该如何以正确的方式做到这一点?Android canvas改变一些像素颜色

详情:

我有我自己的类从ImageView延长。在onDraw(Canvas canvas)方法中,我绘制了第三方类的东西,结果只有Canvas对象。我需要根据当前的颜色改变一些像素的颜色。

+0

你需要遍历每个像素,获取其当前颜色,并设置其新颜色。 – user1706950

+0

我知道了,怎么样? :)对于绘图我可以使用'canvas.drawPoint(x,y,paint)',但是如何获得像素的颜色? –

+0

顺便说一句,我需要适当的解决方案,我的意思是高效和最快。 –

回答

3

假设您已经android.graphics.Canvas对象调用canvasX & Y是要改变像素,所以在这里你去点

电话:

canvas.drawPoint(X, Y, paint); 

这里是你如何initalize类对象android.graphics.Paint ie油漆

Paint paint = new Paint(); 
paint.setStyle(Paint.Style.FILL); 
paint.setColor(Color.WHITE); 

搜索此Link的更多信息可在不同位置更改多个像素,但有许多功能可帮助您实现所需功能。祝你好运:-)

+0

不,情况是不同的。我不知道X,Y。我只能通过当前像素颜色检测坐标。例如。如果某个像素是绿色的,则将其绘成蓝色。 –

1

可能有十几种方法可以做到这一点。如果您想要使用Canvas方法,可以使用一种方法绘制到Bitmap对象。然后,您可以将该对象绘制到另一个画布。位图对象也可能具有修改像素的功能。

位图还可以让你获得一个副本到一个缓冲区,如果你知道如何存储像素,这将是一个非常快速的图像处理方式。我不确定Canvas本身是否有这个