diff options
-rwxr-xr-x | Demo/sgi/video/imgconv.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Demo/sgi/video/imgconv.py b/Demo/sgi/video/imgconv.py new file mode 100755 index 0000000..6e83806 --- /dev/null +++ b/Demo/sgi/video/imgconv.py @@ -0,0 +1,38 @@ +import imageop + +error = 'imgconv.error' + +LOSSY = 1 +NOT_LOSSY = 0 + +def null(img, x, y): + return img + +def mono2grey(img, x, y): + imageop.mono2grey(img, x, y, 0, 255) + +converters = [ \ + ('grey', 'grey4', imageop.grey2grey4, LOSSY), \ + ('grey', 'grey2', imageop.dither2grey2, LOSSY), \ + ('grey', 'mono', imageop.dither2mono, LOSSY), \ + ('mono', 'grey', mono2grey, NOT_LOSSY), \ + ('grey2', 'grey', imageop.grey22grey, NOT_LOSSY), \ + ('grey4', 'grey', imageop.grey42grey, NOT_LOSSY), \ +] + +def addconverter(fcs, tcs, lossy, func): + for i in range(len(converters)): + ifcs, itcs, irtn, ilossy = converters[i] + if (fcs, tcs) == (ifcs, itcs): + converters[i] = (fcs, tcs, func, lossy) + return + converters.append((fcs,tcs,lossy,func)) + +def getconverter(fcs, tcs): + if fcs == tcs: return null + + for ifcs, itcs, irtn, ilossy in converters: + if (fcs, tcs) == (ifcs, itcs): + return irtn + raise error, 'Sorry, that conversion is not implemented' + |