如何在位图android中更改某些像素的颜色
image-processing
4
0

我有一个位图,我想更改某些像素。我已经将位图中的数据放入一个数组中,但是如何在该数组中设置像素颜色呢?

谢谢

int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()];
            myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());

            for(int i =0; i<500;i++){
                //Log.e(TAG, "pixel"+i +pixels[i]);
参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

要设置pixels数组中像素的颜色,请从Android的Color类的静态方法获取值,并将其分配给数组。完成后,使用setPixels将像素复制回位图。

例如,将位图的前五行变为蓝色:

import android.graphics.Color;

int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()];
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
for (int i=0; i<myBitmap.getWidth()*5; i++)
    pixels[i] = Color.BLUE;
myBitmap.setPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());

您也可以一次在Bitmap对象中设置一个像素的颜色,而不必使用setPixel()方法设置像素缓冲区:

myBitmap.setPixel(x, y, Color.rgb(45, 127, 0));
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号