2

指定された .png ファイルから 8 ビット パレットを生成するための最適な Python ベースのライブラリは何でしょうか。.pal 形式で生成する Photoshop の場合と同様です。

PS: 入力 PNG は既に 8 ビット形式です。(パレット)

よろしく

4

2 に答える 2

3

.PAL(Photoshopでは「MicrosoftPAL」と呼んでいます)の仕様を見つけることができませんでしたが、形式は簡単にリバースエンジニアリングされます。これは機能します:

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()
于 2010-07-06T16:45:39.623 に答える
1

パレット化された画像の場合は、getcolors()PIL に読み込んだ後でメソッドを使用できます。RGB または RGBA 画像の場合は、最大で 256 色になるまで減色を行う必要があります。

于 2010-07-06T09:03:27.083 に答える