Android画布会改变一些像素的颜色
我在开始时有一个Canvas
对象。 我需要根据当前的颜色改变一些像素的颜色。 我该如何以正确的方式做到这一点?
细节:
我有我自己的类从ImageView
扩展。 在onDraw(Canvas canvas)
方法中,我绘制了第三方类的东西,并且只有Canvas
对象和结果。 我需要根据当前的颜色改变一些像素的颜色。
假设你有一个名为canvas
android.graphics.Canvas
对象,并且X
和Y
是你想要改变像素的点,所以你在这里
致电:
canvas.drawPoint(X, Y, paint);
这里是你如何初始化类android.graphics.Paint
对象,即paint
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
搜索有关此链接的更多信息可在不同位置更改多个像素,但有许多功能可帮助您实现所需。 好运 :-)
可能有十几种方法可以做到这一点。 如果您想要使用Canvas方法,可以使用一种方法绘制到Bitmap对象。 然后,您可以将该对象绘制到另一个画布。 位图对象也可能具有修改像素的功能。
位图还可以让你获得一个副本到缓冲区,如果你知道如何存储像素,这将是一个非常快速的图像处理方式。 我不确定Canvas本身是否有这个功能
我建议您以更快的方式设置(PNG)位图颜色,而不是逐个像素。 它有代码来获取和设置位图颜色逐个像素(在问题中),以及一个像素逐像素方法(在答案中)的替代建议。 也可能有用:Android中的Bitmap方法getPixels的解释。
链接地址: http://www.djcxy.com/p/64229.html