주어진 .png 파일에서 8 비트 팔레트를 생성하는 데 가장 적합한 파이썬 기반 라이브러리는 무엇입니까? .pal 형식으로 생성하는 Photoshop에서와 같이.파이썬을 통해 png 파일에서 8 비트 팔레트 생성
PS : 입력 PNG는 이미 8 비트 형식입니다.
감사
주어진 .png 파일에서 8 비트 팔레트를 생성하는 데 가장 적합한 파이썬 기반 라이브러리는 무엇입니까? .pal 형식으로 생성하는 Photoshop에서와 같이.파이썬을 통해 png 파일에서 8 비트 팔레트 생성
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()
은 매력처럼 작동합니다. 감사합니다. – Hellnar
당신이 PIL로로드 일단 당신이 getcolors()
방법을 사용할 수있는 palletted 이미지의 경우를 (에서는 팔레트). RGB 또는 RGBA 이미지라면 최대 256 색까지는 색상 줄이기가 필요합니다.
Ignacio 제안에 감사드립니다.이 방법의 .pal 팔레트 버전을 생성하는 방법은 무엇입니까? 감사합니다 – Hellnar
나는 그 파일 형식이 어떻게 생겼는지 전혀 모른다. 나는 결국 당신이'struct'를 사용할 필요가 있다고 생각합니다. –
png 파일이 이미 팔레트 있습니까? 아니면 진정한 색깔입니까? – slurdge
설명을 위해 질문을 편집했습니다. – Hellnar
그건 전혀 "생성"하지 않습니다; 그것은 단지 "추출"입니다. – Nyerguds