adding experimental script to generate paletted images from RGB
This commit is contained in:
parent
c4b384d1b9
commit
d09c1020cf
1 changed files with 58 additions and 0 deletions
58
tools/update-images.py
Executable file
58
tools/update-images.py
Executable file
|
@ -0,0 +1,58 @@
|
|||
#!/usr/bin/env python
|
||||
"""
|
||||
Find image files with magic expansion and convert them for use with stratagus.
|
||||
*-rgb.png: convert from RGB to stratagus palette
|
||||
*-big.png: shrink to half size, then convert from RGB as above
|
||||
TODO *.xcf: assumed to be the source of the same .png, print warning if newer
|
||||
|
||||
Planned: What about something like this? Would this help?
|
||||
*-playercolor.png, *-unit.png: first is converted to gray, then puzzled together
|
||||
with the right palette entries
|
||||
"""
|
||||
|
||||
import Image, ImageFilter
|
||||
import os, os.path
|
||||
import sys
|
||||
|
||||
# where to find the other stratagus tools
|
||||
toolpath = os.path.dirname(sys.argv[0]) + '/'
|
||||
|
||||
def convert(im):
|
||||
"returns the Image im converted to stratagus palette"
|
||||
im.convert('P', None, None, Image.ADAPTIVE, 227).save('delme.png')
|
||||
print 'You can savely ignore the following warning:'
|
||||
os.system(toolpath + 'png2stratagus delme.png delme2.png')
|
||||
res = Image.open('delme2.png')
|
||||
os.remove('delme.png')
|
||||
os.remove('delme2.png')
|
||||
return res
|
||||
|
||||
def mustrebuild(srcfile, dstfile):
|
||||
"check whether outfile needs to be rebuilt"
|
||||
if not os.path.isfile(dstfile):
|
||||
return 1
|
||||
return os.stat(srcfile).st_mtime > os.stat(dstfile).st_mtime
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) > 1:
|
||||
print argv[0], 'works with the current directory, it takes no arguments.'
|
||||
sys.exit(1)
|
||||
|
||||
filelist = os.listdir('.')
|
||||
for infile in filelist:
|
||||
ext = infile[-8:]
|
||||
if ext in ['-big.png', '-rgb.png']:
|
||||
outfile = infile[:-8] + '.png'
|
||||
if mustrebuild(infile, outfile):
|
||||
print 'generating', outfile, 'from', infile
|
||||
im = Image.open(infile)
|
||||
if im.mode == 'P':
|
||||
print 'warning:', infile, 'is already indexed, converting it to RGB first'
|
||||
im = im.convert('RGB')
|
||||
if ext == '-big.png':
|
||||
(w, h) = im.size
|
||||
im = im.resize((w/2, h/2), Image.BILINEAR)
|
||||
convert(im).save(outfile)
|
||||
elif ext == '-rgb.png':
|
||||
convert(im).save(outfile)
|
||||
print 'done'
|
Loading…
Reference in a new issue