Python -Pack 4 int成4个字节

发布于 2025-02-02 18:11:50 字数 530 浏览 2 评论 0原文

我希望将我的颜色值打包成4个字节。

For example: having (255,254,253,252) I would like have back b'\xff\xfe\xfd\xfc'

Instead

r = 255
g = 254
b = 253
a = 252

tot = a << 3 | b << 2 | g << 1 | r

tot_byte = struct.pack('i', tot)

returns: b'\xff\x07\ x00 \ x00'

如果我这样做:

tot = a << 24 | b << 16 | g << 8 | r

tot_byte = struct.pack('i', tot)

我回到了“参数超出范围”。

我该怎么办?

I would like pack my color values in 4 bytes.

For example: having (255,254,253,252) I would like have back b'\xff\xfe\xfd\xfc'

Instead

r = 255
g = 254
b = 253
a = 252

tot = a << 3 | b << 2 | g << 1 | r

tot_byte = struct.pack('i', tot)

returns: b'\xff\x07\x00\x00'

if I do:

tot = a << 24 | b << 16 | g << 8 | r

tot_byte = struct.pack('i', tot)

I got back "argument out of range".

What I should do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

他不在意 2025-02-09 18:11:50

正确的答案是伊恩·谢尔文顿(Iain Shelvington)的答案:

struct.pack('BBBB', r, g, b, a)

struct.pack('4B', r, g, b, a)

The right answer is the Iain Shelvington's one:

struct.pack('BBBB', r, g, b, a)

or

struct.pack('4B', r, g, b, a)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文