计算 BufferedImage 的 rgb 值
我正在使用以下代码片段构建一个 32 位整数,以便
(bit-or (bit-shift-left a 24)
(bit-or (bit-shift-left r 16)
(bit-or (bit-shift-left g 8) b)))
在写入颜色后与 BufferedImage 的 setRGB 一起使用,读回它们会发现错误的颜色,我的逻辑是否有错误?
I am using following snippet to build a 32 bit integer to use with setRGB of BufferedImage
(bit-or (bit-shift-left a 24)
(bit-or (bit-shift-left r 16)
(bit-or (bit-shift-left g 8) b)))
after writing colors reading them back reveals wrong colors is there a fault in my logic?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你确定你有问题吗?我尝试根据您的方法和功能等效的替代方案生成一些值:
并得到相同的值。
我的袖珍计算器上也有同样的数字。
您是否发现某些具体论据会产生错误的结果?
也许这不是这个逻辑的错误,而是在向 BufferedImage 写入/读取值时的错误。
Are you sure you have a problem? I tried generating a few values based on your method and a functionally equivalent alternative:
and got identical values.
I got the same numbers on my pocket caculator.
Are there specific arguments that you have seen to produce incorrect results?
Perhaps it isn't a fault in this logic but in writing/reading the values to the BufferedImage.
我在我的 misc.clj:
它经常很方便。
I keep a bytes-to-int function that converts a sequence of bytes into a number in my misc.clj:
it comes handy fairly often.