首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Python从png文件生成8位调色板

通过Python从png文件生成8位调色板
EN

Stack Overflow用户
提问于 2010-07-06 16:57:22
回答 2查看 1.8K关注 0票数 2

从给定的.png文件生成8位调色板的最好的python库是什么?就像在.pal格式下的photoshop生成一样。

PS:输入PNG已经是8位格式。(调色板)

问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-07 00:45:40

我还没能找到.PAL的规范(Photoshop称之为“微软的PAL"),但它的格式很容易逆向工程。这是可行的:

代码语言:javascript
复制
def extractPalette(infile,outfile):
    im=Image.open(infile)
    pal=im.palette.palette
    if im.palette.rawmode!='RGB':
        raise ValueError("Invalid mode in PNG palette")
    output=open(outfile,'wb')
    output.write('RIFF\x10\x04\x00\x00PAL data\x04\x04\x00\x00\x00\x03\x00\x01') # header
    output.write(''.join(pal[i:i+3]+'\0' for i in range(0,768,3))) # convert RGB to RGB0 before writing 
    output.close()
票数 3
EN

Stack Overflow用户

发布于 2010-07-06 17:03:27

如果是调色板图像,则可以在将其加载到PIL中后使用getcolors()方法。如果它是RGB或RGBA图像,那么你需要做颜色减少,直到你有256种颜色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3184821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档