# This is a combination of Listings 6.1, 6.3, and 6.5 # from Python Programming in Context by Miller and Ranum, # together with a procedure for showing an image in a window. from cImage import * def negativePixel(oldPixel): newred = 255 - oldPixel.getRed() newgreen = 255 - oldPixel.getGreen() newblue = 255 - oldPixel.getBlue() newPixel = Pixel(newred, newgreen, newblue) return newPixel def grayPixel(oldpixel): intensitySum = oldpixel.getRed() + oldpixel.getGreen() + \ oldpixel.getBlue() aveRGB = intensitySum // 3 newPixel = Pixel(aveRGB,aveRGB,aveRGB) return newPixel def pixelMapper(oldimage,rgbFunction): width = oldimage.getWidth() height = oldimage.getHeight() newim = EmptyImage(width,height) for row in range(height): for col in range(width): originalPixel = oldimage.getPixel(col,row) newPixel = rgbFunction(originalPixel) newim.setPixel(col,row,newPixel) return newim def show(image): win = ImageWin('Image', image.getWidth(), image.getHeight()) image.draw(win) win.exitOnClick()