创建浮点颜色

时间:2017-12-04 12:16:18

标签: python css python-3.x

我想绘制一个浮点颜色的像素,例如rgb(173.373,216,230) 我尝试使用Pillow Image和Imagecolor但没有成功

我的主要目标是能够从图像中读取和写入浮点颜色。

from PIL import Image, ImageColor

im = Image.new("RGB", (32, 32), ImageColor.getrgb("rgb(173.373, 216, 230)"))

im.save('simplePixel.png')

但我得到以下错误:

raise ValueError("unknown color specifier: %r" % color)
ValueError: unknown color specifier: 'rgb(173.373, 216, 230)'

2 个答案:

答案 0 :(得分:0)

正如Paulie_D所说,没有这种“水平”的颜色。您不能在颜色字符串中使用浮点数。

文档说明:

  

RGB函数,以rgb(红色,绿色,蓝色)给出,其中颜色值为0到255范围内的整数。或者,颜色值可以为三个百分比(0%到100%)。例如,rgb(255,0,0)和rgb(100%,0%,0%)都指定纯红色。

所以这些是你可以使用的唯一选择。

答案 1 :(得分:0)

您可以使用OpenCV加载图像或从Pillow转换图像。 OpenCV允许您使用浮点颜色,这样就可以在RGB值中添加小数。请注意,这样做绝对没有意义,因为大多数监视器只能以sRGB显示颜色,每个颜色通道为8位(红色为8位,蓝色为8位,绿色为8位),并且只有HDR监视器甚至可以读取浮动点颜色。大多数显示器甚至无法准确显示这些颜色,甚至低端HDR显示器的色彩还原也不准确。

基本上,除非使用神经网络,否则无需处理浮点颜色,但可以使用OpenCV。