最近在做Android上的图像处理,在Android上直接对像素操作,居然出现了意想不到的事情。Bitmap类getPixel方法获取的像素值全部是负的,本来应该是黑色的,也就是0的,全部变成了-16777216,很是奇怪。但是仔细研究研究这个16777216又比较特殊,因为16777216=256*256*256,刚好是RGB三种颜色分量最大值的乘积。其实这个值的不精确表示,我们很熟悉,手机广告中宣传屏幕的时候经常会说支持1600万色,诺基亚最喜欢这样宣传了。-16777216的补码十六进制表示就是#FF000000,刚好是加了alpha通道的不透明黑色。查了Android 的文档才知道,Android中颜色由四个分量组成,而我想当然的YY成了RGB三个分量,忽略了A这个分量,默认的A值是255。所以无A通道的图像素最高位总是1,而JAVA中又没有无符号整型,返回一个32位的int型变量,就这样出现了我遇到的各种负数。

更多相关文章

  1. android camera(一):camera模组CMM介绍
  2. Android图像处理_浮雕效果
  3. Android(安卓)获取屏幕宽度、高度、dpi等信息
  4. android camera(一):camera模组CMM介绍
  5. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  6. android 分辨率及密度详细
  7. Android中的尺寸单位
  8. android camera(一):camera模组CMM介绍
  9. android 分辨率及密度详细

随机推荐

  1. Android(安卓)NDK开发之Android.mk文件
  2. android 神奇的android:clipChildren属性
  3. Android(安卓)单独抽取 WebRtc-AGC(音频增
  4. 【转】Android(安卓)Makefile中是 如何识
  5. Android(安卓)相关属性
  6. Android知识体系总结之Android部分View绘
  7. Android(安卓)studio 3.1.4 无法获取pom
  8. Android自动完成文本框
  9. Android概述
  10. Android中ExpandableListView控件基本使