mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-01 07:10:40 +00:00
44 lines
1.2 KiB
Python
Executable File
44 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
"""
|
|
imgcheck - check a sequence of images for exiguous colors
|
|
|
|
usage: imgcheck baseframe imgframe...
|
|
|
|
In a sequence of images, treat the first as a baseframe and the rest
|
|
as animation images. Report on colors not present in the baseframe.
|
|
|
|
The Python Imaging Library must be available for this tool to work
|
|
"""
|
|
|
|
import sys, Image
|
|
|
|
# Extract a color table list from the images
|
|
colortables = []
|
|
for filename in sys.argv[1:]:
|
|
img = Image.open(filename).convert("RGB")
|
|
colortable = img.getcolors()
|
|
if colortable:
|
|
colortables.append([filename, colortable])
|
|
else:
|
|
print "imgcheck: %s has no color table" % filename
|
|
#img.close()
|
|
|
|
# Perform cxolor table subtraction
|
|
basecolors = map(lambda (n, rgb): rgb, colortables[0][1])
|
|
basecolors.sort()
|
|
subtracted = []
|
|
for i in range(1, len(colortables)):
|
|
exiguous = []
|
|
for (n, rgb) in colortables[i][1]:
|
|
if rgb not in basecolors:
|
|
exiguous.append((n, rgb))
|
|
exiguous.sort(lambda (an, argb), (bn, brgb): cmp(argb, brgb))
|
|
subtracted.append((colortables[i][0], exiguous))
|
|
|
|
print "Base colors:"
|
|
print basecolors
|
|
for (filename, colors) in subtracted:
|
|
print filename + ":"
|
|
for (n, rgb) in colors:
|
|
print repr(rgb) + " * " + repr(n)
|