gpt4 book ai didi

python - png24到png8转换

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:48 25 4
gpt4 key购买 nike

我想将输入的 24 位 PNG 图像转换为 8 位,我尝试使用 Imagemagick 和 Python PIL,但都不起作用。

例如:

在 Imagemagick,我尝试这样转换控制台命令:

convert -depth 8 png24image.png png8image.png

这是我尝试使用 python 的方式:

import Image
def convert_8bit(src, dest):
"""
convert_8bit: String, String -> void.
Converts the input image file into 8bit depth.
"""
im = Image.open(src)
if not im.mode == "P":
im2 = im.convert("P", rgb2xyz)
im2.save(dest)

Imagemagick 甚至不触及图像,而 python 函数减少到 8 位,但保留唯一数字的数量为 164 而不是 256。当从 24 位 png 图像转换为 png8 时,Photoshop 用于将图像转换为具有 256 个唯一数字的 8 位.

谢谢

编辑:

通过 Photoshop 输出 24->8 png 转换(我需要) alt text http://img695.imageshack.us/img695/934/psout.png

通过我的 Python 函数转换

alt text http://img638.imageshack.us/img638/6762/pythonout.png

最佳答案

看起来 convert 方法上的量化方法没有做正确的事情。试试这个:

im2 = im.convert('RGB').convert('P', palette=Image.ADAPTIVE)

RGB 的额外转换可能是多余的。我从 http://nadiana.com/pil-tips-converting-png-gif 得到了这个提示

关于python - png24到png8转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3195509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com