相关疑难解决方法(0)

如何使用Python Imaging Library将任何图像转换为4色调色板图像?

我有一个支持4色图形的设备(很像以前的CGA).

我想使用PIL读取图像并使用我的4色调色板(红色,绿色,黄色,黑色)进行转换,但我无法弄清楚它是否可能.我发现一些邮件列表存档帖子似乎暗示其他人已经尝试这样做并且失败了.

一个简单的python示例将非常感谢!

如果添加一些内容然后将图像转换为字节字符串,其中每个字节代表4个像素的数据(每两个位代表一个0到3的颜色),则可获得奖励积分

python image-processing python-imaging-library

11
推荐指数
2
解决办法
1万
查看次数

PIL:将RGB图像转换为特定的8位调色板?

使用Python Imaging Library,我可以打电话

img.convert("P", palette=Image.ADAPTIVE)
Run Code Online (Sandbox Code Playgroud)

要么

img.convert("P", palette=Image.WEB)
Run Code Online (Sandbox Code Playgroud)

但有没有办法转换为任意调色板?

p = []
for i in range(0, 256):
    p.append(i, 0, 0)
img.convert("P", palette=p)
Run Code Online (Sandbox Code Playgroud)

它会将每个像素映射到图像中最接近的颜色?或者这是否支持Image.WEB,没有别的?

python image palette

8
推荐指数
1
解决办法
1万
查看次数

为什么枕头转换指定调色板之外的返回颜色?

使用Pillow 5.4.1,Python 3.6.8

给定一个image.png具有9种不同颜色的图像,并给一个具有5种不同颜色的数据调色板,人们可能会希望pillow将图像缩小为所描述的调色板,从而使生成的图像仅包含该调色板中的颜色。

但是,使用该im.im.convert方法返回的图像具有超出指定调色板的颜色。具体来说,它们始终是灰度图像(R==B==G值)

示例代码,为原始图像,调色板和转换后的图像输出唯一的颜色集。

from PIL import Image
im = Image.open("image.png")

# create palette from raw data
# colours: Red, Green, Blue, Black, and White (5 total)
RGBBW = [(255,0,0), (0,255,0), (0,0,255), (0,0,0), (255,255,255)]
data = sum([list(x) for x in RGBBW], [])[:256]
pimg = Image.new("P",(16,16))
pimg.putpalette(data)

# Hack
im.convert("RGB")
cim_ = im.im.convert("P", 0, pimg.im)
cim = im._new(cim_).convert("RGB")

def colors(im):
    cs = []
    for x in range(im.width):
        for y in range(im.height): …
Run Code Online (Sandbox Code Playgroud)

python palette python-imaging-library

5
推荐指数
1
解决办法
255
查看次数