关于Bitmap像素颜色的判断

android.graphics.Bitmap.Config是一个枚举类型,里面定义了位图的四种格式。通过名称可以大概判处出颜色的存储方式:
  • ALPHA_8:由一个字节表示的图像,是一种8位的位图
  • ARGB_4444:由两个字节来表示的图像,是一种16位的位图
  • ARGB_8888:由四个字节来表示的图像,是一种32位的位图
  • RGB_565:由两个字节来表示的图像,是一种16位的位图

ALPHA_8,ARGB_4444,ARGB_8888都是透明的位图,也就是字母A代表的透明,各个颜色说占的字节推断如下:
  • ALPHA_8:只有一种透明单色表示,占8bit
  • ARGB_4444:四色表示,即A/R/G/B,4+4+4+4=16,表示每一种颜色占4bit
  • ARGB_8888:四色表示,即A/R/G/B,8+8+8+8=32,表示每一种颜色占8bit
  • RGB_565:三色表示,即R/G/B,5+6+5=16,三种颜色分别占5bit,6bit,5bit

可以通过getPixel(x, y)来获取Bitmap位图指定坐标的像素值,该函数的返回值是一个int型,常见的返回值常量有:

public static final int BLACK
Constant Value: -16777216 (0xff000000)

  
public static final int BLUE
Constant Value: -16776961 (0xff0000ff)

  
public static final int CYAN
Constant Value: -16711681 (0xff00ffff)

  
public static final int DKGRAY
Constant Value: -12303292 (0xff444444)

  
public static final int GRAY
Constant Value: -7829368 (0xff888888)

  
public static final int GREEN
Constant Value: -16711936 (0xff00ff00)

  
public static final int LTGRAY
Constant Value: -3355444 (0xffcccccc)

  
public static final int MAGENTA
Constant Value: -65281 (0xffff00ff)

  
public static final int RED
Constant Value: -65536 (0xffff0000)

  
public static final int TRANSPARENT
Constant Value: 0 (0x00000000)

  
public static final int WHITE
Constant Value: -1 (0xffffffff)

  
public static final int YELLOW
Constant Value: -256 (0xffffff00)

 因此可以通过getPixel(x, y) == -1 来判断该像素是否为白色。


 如果要取出某一单色的值,则可以:
 
  
  
int clr=  bitmap.getPixel(x, y); 

int  red   = (clr & 0x00ff0000) >> 16;  //取高两位

 int  green = (clr & 0x0000ff00) >> 8; //取中两位

 int  blue  =  clr & 0x000000ff; //取低两位


反过来也可以自己设置某个像素的颜色:

for (int i=0; i < pixels.length; i++) {

    int alpha = Color.alpha(pixels[i]);

     if (alpha != 0) {

     pixels[i] = Color.argb(alpha, red, green, blue);

 }

 }


然后就可以通过setPixel()函数进行设置了。


关于像素设置,还可以浏览这里:stackoverflow.com/questions/4251027/fast...ad-of-pixel-by-pixel


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值