欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pillow- putpixel --ValueError: invalid palette size 错误

程序员文章站 2024-03-13 20:54:16
...

场景还原

putpixel操作 实现随即色的图片

from PIL import Image
from random import randint

img_ = Image.open('256.bmp')

for w in range(200, 280):  # 这里是设置图形的宽度 范围
    for h in range(100, 150):  # 这里是设置图形高度 范围
        r = randint(0, 255)  # 取值 0-255 随机数的值 作为颜色值
        g = randint(0, 255)
        b = randint(0, 255)
        img_.putpixel((w, h), (r, g, b))  # 设置指定范围的颜色值

img_.show()

执行这段代码的时候,发现怎么也不能把颜色添加到 256.bmp
出现了以下错误
Pillow- putpixel --ValueError: invalid palette size 错误
报错信息:无效的面板尺寸。由此可以得知 是我们的画板出的问题

我们来看生成画板的,保存时候选择的 bmp 颜色位数。
Pillow- putpixel --ValueError: invalid palette size 错误
当时我选择的是 256 色位图所以出现了错误,我们应该选择图中的 24位位图
然后再 执行代码

Pillow- putpixel --ValueError: invalid palette size 错误
想要的效果就出现了。


错误的原因

我们在 白板上使用的颜色 是使用的 RGB 颜色

RGB颜色,电脑上可以显示多少种颜色?
  • 16777216种

  • 256 × 256 × 256 = 16777216。

通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。

256 色位图是什么
  • 256色位图:图像只能由256种颜色构成

理解了吧,我们是想在画板上 使用 RGB 画 224 种颜色,选择 256色位图是跟不行的。所以才出现了 无效的面板尺寸。