Какой будет лучшая библиотека на основе Python для создания 8-битной палитры из данного файла .png. Как в фотошопе генерит под формат .pal.
PS: Входной PNG уже в 8-битном формате. (палитрованный)
С Уважением
Какой будет лучшая библиотека на основе Python для создания 8-битной палитры из данного файла .png. Как в фотошопе генерит под формат .pal.
PS: Входной PNG уже в 8-битном формате. (палитрованный)
С Уважением
Мне не удалось найти спецификацию для .PAL (Photoshop называет его «Microsoft PAL»), но этот формат легко перепроектировать. Это работает:
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()
Если это изображение на палитре, вы можете использовать метод getcolors()
после того, как загрузите его в PIL. Если это изображение RGB или RGBA, вам нужно уменьшить цвет, пока у вас не будет максимум 256 цветов.
struct
.
- person Ignacio Vazquez-Abrams; 06.07.2010