【发布时间】:2014-10-06 23:22:54
【问题描述】:
我一直在使用嵌套的 for 循环将 RGB 图像转换为十六进制值的图像数组,但是对于大图像来说太慢了。有谁知道可以帮助我从 RGB 切换回 HEX 的快速方法和/或库?
编辑: @ragingSloth
这是我想出的,但对于我的需要来说太慢了:
def rgb_to_hex(array):
(x, y, z) = array.shape
for v in range(0, x):
for u in range(0, y):
array[v, u] = int('%02x%02x%02x' % (array[v, u, 0], array[v, u, 1], array[v, u, 2]))
【问题讨论】:
-
你做得怎么样? opencv 可能有适合你的东西。
-
我不得不承认我在 python 方面不是世界第一,所以我不得不问:什么是 Hex 图像?
-
@ragingSloth 这是我粗略想出来的,它很慢!def rgb_to_hex(array): (x, y) = array.shape for v in range(0, x): for u in range(0, y): array[v, u] = int('%03d%03d%03d' % (array[v, u, 1], array[v, u, 2], array[v, u, 3]))
-
所以你试图获取 3 个 RGB 值并将它们打包到一个 int 中?
-
@beaker 是的,这才是真正的目标。如果您可以将其作为六位小数,我也可以使用它,但是是的,这个想法是从 3 RGB 到一个单一的 int。