Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- from PIL import Image
- import blec
- import random
- WHITE = (255, 255, 255, 255)
- BLUE = (0, 0, 255, 255)
- RED = (255, 0, 0, 255)
- def to_1(color):
- return tuple(x / 255 for x in color)
- def to_255(color):
- return tuple(int(round(x * 255)) for x in color)
- def raw_color(name, color):
- img = Image.new('RGB', (255, 100), color)
- img.save(f'raw-color-{name}.png')
- def blend_gradient(name, gamma):
- img = Image.new('RGB', (255, 100), 'black')
- pixels = img.load()
- for i in range(255):
- blue = (BLUE[0], BLUE[1], BLUE[2], i)
- color = to_255(blec.blend(gamma, to_1(RED), to_1(blue)))
- for j in range(100):
- pixels[i, j] = color
- img.save(f'gamma-{name}.png')
- def blend_gradient_white_blue(gamma):
- img = Image.new('RGB', (255, 100), 'black')
- pixels = img.load()
- for i in range(255):
- blue = (BLUE[0], BLUE[1], BLUE[2], i)
- color = to_255(blec.blend(gamma, to_1(WHITE), to_1(blue)))
- for j in range(100):
- pixels[i, j] = color
- img.save(f'gradient-white-blue.png')
- def blend_gradient_dithering():
- img = Image.new('RGB', (255, 100), 'black')
- pixels = img.load()
- for i in range(255):
- for j in range(100):
- color = RED if i < random.randint(0, 255) else BLUE
- pixels[i, j] = to_255(color)
- img.save(f'gradient-dithering.png')
- def blend_two_colors(name, gamma):
- half_blue = to_1(BLUE[:3]) + (0.5,)
- color = blec.blend(gamma, to_1(RED), half_blue)
- color = to_255(color)
- img = Image.new('RGB', (100, 100), color)
- img.save(f'two-colors-gamma-{name}.png')
- def blend_two_colors_dithering():
- img = Image.new('RGB', (100, 100), 'black')
- pixels = img.load()
- for i in range(100):
- for j in range(100):
- color = RED if 0.5 < random.uniform(0, 1) else BLUE
- pixels[i, j] = to_255(color)
- img.save(f'two-colors-dithering.png')
- raw_color('red', RED)
- raw_color('blue', BLUE)
- blend_gradient_white_blue(blec.PowerLaw(2.2))
- blend_gradient('srgb', blec.Srgb())
- blend_gradient('1', blec.PowerLaw(1))
- blend_gradient('1.4', blec.PowerLaw(1.4))
- blend_gradient('2.2', blec.PowerLaw(2.2))
- blend_gradient_dithering()
- blend_two_colors('1', blec.PowerLaw(1))
- blend_two_colors('2.2', blec.PowerLaw(2.2))
- blend_two_colors_dithering()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement