我在ImageView中有图像。我想将某些像素设置为红色。我取得了一些进展,但创建的图像已经失去了颜色。如何设置图像的某些像素的颜色
iv.setImageBitmap(processingBitmap(bitmap));
private Bitmap processingBitmap(Bitmap src){
Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), src.getConfig());
for(int x = 0; x < src.getWidth(); x++){
for(int y = 0; y < src.getHeight(); y++){
int pixelColor = src.getPixel(x, y);
int newPixel= Color.rgb(pixelColor, pixelColor, pixelColor);
dest.setPixel(x, y, newPixel);
}
}
for (int i=5; i<50; i++)
{
dest.setPixel(i, i, Color.rgb(255, 0, 0));
}
return dest;
}
如果我使用的Bitmap dest = src.copy(src.getConfig(), src.isMutable());
代替Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), src.getConfig());
我得到一个错误的iv.setImageBitmap(processingBitmap(bitmap));
行:
09-06 18:03:37.226:E/AndroidRuntime(811):造成者: java.lang.IllegalStateException 09-06 18:03:37.226: E/AndroidRuntime(811):at android.graphics.Bitmap.setPixel(Bitmap.java:847)
我也不知道为什么我必须复制粘贴所有像素,然后将这些像素设置为我想要的红色。如果我只用
for (int i=5; i<50; i++)
{
dest.setPixel(i, i, Color.rgb(255, 0, 0));
}
我得到一个红色的黑色图像。
任何帮助表示赞赏!
任何任何想法? – erdomester