from wand.image import Image from wand.drawing import Drawing from wand.display import display from random import randint import os import urllib.request print(""" --------------------------------------------------------------------------------------------------- ███╗ ███╗ █████╗ ██╗ ██╗███████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗███╗ ██╗███████╗██████╗ ████╗ ████║██╔══██╗██║ ██╔╝██╔════╝ ██╔════╝██╔════╝██╔══██╗████╗ ██║████╗ ██║██╔════╝██╔══██╗ ██╔████╔██║███████║█████╔╝ █████╗ ███████╗██║ ███████║██╔██╗ ██║██╔██╗ ██║█████╗ ██║ ██║ ██║╚██╔╝██║██╔══██║██╔═██╗ ██╔══╝ ╚════██║██║ ██╔══██║██║╚██╗██║██║╚██╗██║██╔══╝ ██║ ██║ ██║ ╚═╝ ██║██║ ██║██║ ██╗███████╗ ███████║╚██████╗██║ ██║██║ ╚████║██║ ╚████║███████╗██████╔╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═══╝╚══════╝╚═════╝ by https://github.com/zinchenko291 --------------------------------------------------------------------------------------------------- """) if not 'input' in os.listdir(): os.mkdir('./input') if not 'output' in os.listdir(): os.mkdir('./output') else: outlist = os.listdir('output/') for i in outlist: os.remove(f'output/{i}') if not 'scanner.png' in os.listdir(): url = 'https://www.canon.ru/media/scanners_range_tcm203-1266210.png' response = urllib.request.urlopen(url) img = response.read() with open('scanner.png', 'wb') as f: f.write(img) inputs = os.listdir('input/') back = Image(filename='scanner.png') print(f'Изображений в папке: {len(inputs)}.\nНачинаю работу.') for key, i in enumerate(inputs): with Image(filename=f'input/{i}') as img: img.colorize(color="blue", alpha="rgb(0%, 0%, 10%)") img.rotate(randint(-10, 10)/10) img.gamma(0.8) img.linear_stretch(black_point=0.035, white_point=0.1) img.blur(radius=0, sigma=0.5) img.noise("laplacian", attenuate=0.5) w = img.clone() r = back.clone() with Drawing() as draw: draw.composite('color_burn', 0, 0, r.width, r.height, r) draw(w) w.save(filename=f'output/{i}') print(f'\rПрогресс: [{"="*int((key + 1) / len(inputs) * 50)}{"-"*int(50 - (key + 1) / len(inputs) * 50)}] {int((key + 1) / len(inputs) * 100)}% | {key + 1}/{len(inputs)}', end='') pass print('\nРабота выполнена.')