1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| from PIL import Image, ImageEnhance
WIDTH = 90 HEIGHT = 50
BRIGHT_X = 110 BRIGHT_Y = 190 DARK_X = 115 DARK_Y = 320
def average(lst,order): l = [_[order] for _ in lst] return sum(l) / len(l)
im = Image.open('test.jpg','r')
bright_part = Image.new(im.mode, (WIDTH, HEIGHT), 0) dark_part = Image.new(im.mode, (WIDTH, HEIGHT), 0)
bright_part.paste(im.crop((BRIGHT_X, BRIGHT_Y, BRIGHT_X + WIDTH, BRIGHT_Y +HEIGHT)), (0, 0)) dark_part.paste(im.crop((DARK_X, DARK_Y, DARK_X + WIDTH, DARK_Y +HEIGHT)), (0, 0))
bright_part.save('bright.jpg') dark_part.save('dark.jpg')
bright_data = list(bright_part.getdata()) dark_data = list(dark_part.getdata())
average_rgb_of_bright_data = (average(bright_data, 0),average(bright_data, 1),average(bright_data, 2)) average_rgb_of_dark_data = (average(dark_data, 0),average(dark_data, 1),average(dark_data, 2))
result = Image.new(im.mode, (400, 200), 0)
result.paste(average_rgb_of_bright_data, (0,0,400,100)) result.paste(average_rgb_of_dark_data, (0,100,400,200)) result.save('result.jpg')
dark_pic = ImageEnhance.Brightness(result).enhance(0.4) dark_pic.save('dark_result.jpg')
|