| #!/usr/bin/python |
| |
| import sys |
| |
| # just need this for leaktesting |
| import gc |
| |
| from vipsCC import * |
| |
| if len (sys.argv) != 3: |
| print 'usage:', sys.argv[0], 'inputimage outputimage' |
| print '\tcalculate photographic negative of inputimage' |
| sys.exit (1) |
| |
| try: |
| a = VImage.VImage (sys.argv[1]) |
| b = a.invert () |
| c = b.lin ([1,2,3],[4,5,6]) |
| m = VMask.VIMask (3, 3, 1, 0, |
| [-1, -1, -1, |
| -1, 8, -1, |
| -1, -1, -1]) |
| d = a.conv (m) |
| d.write (sys.argv[2]) |
| except VError.VError, e: |
| e.perror (sys.argv[0]) |
| |
| # we can get properties of VImage too |
| print 'inputimage is', a.Xsize (), 'pixels across' |
| |
| print 'starting shutdown ...' |
| del b |
| del a |
| del c |
| del d |
| del m |
| # sometimes have to do several GCs to get them all, not sure why |
| for i in range(10): |
| gc.collect () |
| print 'shutdown!' |
| |
| print 'leaked IMAGEs:' |
| VImage.im__print_all () |
| print 'done ... hopefully you saw no leaks' |