【发布时间】:2015-07-11 10:28:33
【问题描述】:
我有一个位图,我想为位图中的每个像素设置一个新的像素值。
这是我的代码:
Bitmap bm=((BitmapDrawable)imageView.getDrawable()).getBitmap();
int W = bm.getWidth();
int H = bm.getHeight();
int [][][] clr = new int [3][H][W];
int pixel;
for(int i=0;i<W;i++)
for(int j=0;j<H;j++){
pixel = bm.getPixel(i, j);
clr[0][j][i] = Color.red(pixel);
clr[1][j][i] = Color.green(pixel);
clr[2][j][i] = Color.blue(pixel);
}
/*
...
pixel changging process
...
*/
//save a new image
for(int i=0;i<W;i++)
for(int j=0;j<H;j++)
bm.setPixel(i, j, Color.rgb(clr[0][j][i],clr[1][j][i],clr[2][j][i]));
saveImageFile(bm);
//end save new image
我该怎么办?保存新图像的过程无法正常工作,我需要一个替代方法来解决这个问题
提前感谢:)
【问题讨论】:
-
您的位图应该是可变的,以便在其中进行更改。您应该创建新的可变位图。像这样:位图 bm = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
-
通过创建一个新的位图变量来解决,感谢@AterLux 的帮助,祝你有美好的一天:)
标签: java android bitmap pixels