0

我正在开发一个 android 应用程序,但遇到了一个奇怪的问题。我正在 SurfaceView 上进行一些图像处理。我正在使用画布和以下方法绘制处理后的图像:

canvas.drawBitmap(image, x, y, paint)

我的 SurfaceView 有一个彩色背景(#3500ffff,一种非常深的绿色),一旦绘制了图像,我可以注意到它的原始颜色没有保留。它具有非常轻微的深绿色色调,就像位图 alpha 已更改一样。

有没有人已经遇到过这个问题?你对如何解决这个问题有想法吗?

4

2 回答 2

1

这将发生在 16 位目的地。16 位缓冲区以 565 格式对像素进行编码,从而在绿色通道中提供更高的精度,这有时会导致绿色色调。32 位目标/位图将解决此问题。

于 2011-01-19T21:26:17.567 回答
0

假设您的图像不透明,您是如何定义油漆的,它不应该是透明颜色或使用一些特殊效果。尝试使用 null 进行绘制。

另一件事是您首先绘制图像还是背景?只是想知道您的绘图顺序是否正确。

如果您将表面设置为不透明,那么图像会改变颜色吗?

我注意到的另一件我认为与事件同步有关的事情是,当手指在初始化绘图的屏幕上非常快速地移动时,有时在表面上绘图会创建一个半透明的精灵。

于 2011-01-20T00:55:11.057 回答