最近在做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屏幕像素转换
  2. Android for opencv(1)android使用opencv基本操作:读写 图片,操作像
  3. 如何确定在web页面上呈现的字符串的长度(以像素为单位)?
  4. Html css缩放会将大小改变几个像素
  5. 将2d数组数据视为定义形状的像素——是否可能创建内部和表面?
  6. Java图片识别技术原理-只取图片像素。。。

随机推荐

  1. sql 批量修改数据库表
  2. SQL 平均数统计
  3. SQL 注入式攻击的本质
  4. 该行已经属于另一个表 的解决方法
  5. sql server 临时表 查找并删除的实现代码
  6. SQL Server导入、导出、备份数据方法
  7. .NET Framework SQL Server 数据提供程序
  8. 对有自增长字段的表导入数据注意事项
  9. mssql自动备份及自动清除日志文件服务器
  10. Sql 语句学习指南第1/2页