getpixel() java_android – 使用getPixel()方法提取的巨大负值

我正在开发一个图像处理应用程序的问题(新手在这里).我试图通过使用getPixel()方法提取特定像素的值.

我虽然遇到了问题.我从这种方法得到的数字是一个巨大的负数,类似于-1298383.这是正常的吗?我该如何解决?

谢谢.

最佳答案 我不是专家,但对我来说,看起来你得到的是十六进制值.也许你想要一些像每个RGB层的值更容易理解的东西.

要将像素解压缩为RGB值,您应该执行以下操作:

private short[][] red;

private short[][] green;

private short[][] blue;

/**

* Map each intensity of an RGB colour into its respective colour channel

*/

private void unpackPixel(int pixel, int row, int col) {

red[row][col] = (short) ((pixel >> 16) & 0xFF);

green[row][col] = (short) ((pixel >> 8) & 0xFF);

blue[row][col] = (short) ((pixel >> 0) & 0xFF);

}

在每个通道发生变化后,您可以将像素打包回来.

/**

* Create an RGB colour pixel.

*/

private int packPixel(int red, int green, int blue) {

return (red << 16) | (green << 8) | blue;

}

对不起,如果它不是你想要的.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值