我有一个Canvas
对象在开始。我需要根据当前的颜色改变一些像素的颜色。我该如何以正确的方式做到这一点?Android canvas改变一些像素颜色
详情:
我有我自己的类从ImageView
延长。在onDraw(Canvas canvas)
方法中,我绘制了第三方类的东西,结果只有Canvas
对象。我需要根据当前的颜色改变一些像素的颜色。
我有一个Canvas
对象在开始。我需要根据当前的颜色改变一些像素的颜色。我该如何以正确的方式做到这一点?Android canvas改变一些像素颜色
详情:
我有我自己的类从ImageView
延长。在onDraw(Canvas canvas)
方法中,我绘制了第三方类的东西,结果只有Canvas
对象。我需要根据当前的颜色改变一些像素的颜色。
假设您已经android.graphics.Canvas
对象调用canvas
和X
& 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的更多信息可在不同位置更改多个像素,但有许多功能可帮助您实现所需功能。祝你好运:-)
不,情况是不同的。我不知道X,Y。我只能通过当前像素颜色检测坐标。例如。如果某个像素是绿色的,则将其绘成蓝色。 –
可能有十几种方法可以做到这一点。如果您想要使用Canvas方法,可以使用一种方法绘制到Bitmap对象。然后,您可以将该对象绘制到另一个画布。位图对象也可能具有修改像素的功能。
位图还可以让你获得一个副本到一个缓冲区,如果你知道如何存储像素,这将是一个非常快速的图像处理方式。我不确定Canvas本身是否有这个
我推荐看Faster way to set a (PNG) bitmap color instead of pixel by pixel。它有代码来获取和设置位图颜色逐个像素(在问题中),以及一个像素逐像素方法(在答案中)的替代建议。也可能有用:Explanation of the method getPixels for a Bitmap in Android。
你需要遍历每个像素,获取其当前颜色,并设置其新颜色。 – user1706950
我知道了,怎么样? :)对于绘图我可以使用'canvas.drawPoint(x,y,paint)',但是如何获得像素的颜色? –
顺便说一句,我需要适当的解决方案,我的意思是高效和最快。 –