| | import os |
| | import requests |
| | import random |
| | import _thread as thread |
| | from uuid import uuid4 |
| | import urllib |
| |
|
| | import numpy as np |
| | import skimage |
| | from skimage.filters import gaussian |
| | from PIL import Image |
| |
|
| | def compress_image(image, path_original): |
| | size = 1920, 1080 |
| | width = 1920 |
| | height = 1080 |
| |
|
| | name = os.path.basename(path_original).split('.') |
| | first_name = os.path.join(os.path.dirname(path_original), name[0] + '.jpg') |
| |
|
| | if image.size[0] > width and image.size[1] > height: |
| | image.thumbnail(size, Image.ANTIALIAS) |
| | image.save(first_name, quality=85) |
| | elif image.size[0] > width: |
| | wpercent = (width/float(image.size[0])) |
| | height = int((float(image.size[1])*float(wpercent))) |
| | image = image.resize((width,height), Image.ANTIALIAS) |
| | image.save(first_name,quality=85) |
| | elif image.size[1] > height: |
| | wpercent = (height/float(image.size[1])) |
| | width = int((float(image.size[0])*float(wpercent))) |
| | image = image.resize((width,height), Image.ANTIALIAS) |
| | image.save(first_name, quality=85) |
| | else: |
| | image.save(first_name, quality=85) |
| |
|
| |
|
| | def convertToJPG(path_original): |
| | img = Image.open(path_original) |
| | name = os.path.basename(path_original).split('.') |
| | first_name = os.path.join(os.path.dirname(path_original), name[0] + '.jpg') |
| |
|
| | if img.format == "JPEG": |
| | image = img.convert('RGB') |
| | compress_image(image, path_original) |
| | img.close() |
| |
|
| | elif img.format == "GIF": |
| | i = img.convert("RGBA") |
| | bg = Image.new("RGBA", i.size) |
| | image = Image.composite(i, bg, i) |
| | compress_image(image, path_original) |
| | img.close() |
| |
|
| | elif img.format == "PNG": |
| | try: |
| | image = Image.new("RGB", img.size, (255,255,255)) |
| | image.paste(img,img) |
| | compress_image(image, path_original) |
| | except ValueError: |
| | image = img.convert('RGB') |
| | compress_image(image, path_original) |
| | |
| | img.close() |
| |
|
| | elif img.format == "BMP": |
| | image = img.convert('RGB') |
| | compress_image(image, path_original) |
| | img.close() |
| |
|
| |
|
| |
|
| | def blur(image, x0, x1, y0, y1, sigma=1, multichannel=True): |
| | y0, y1 = min(y0, y1), max(y0, y1) |
| | x0, x1 = min(x0, x1), max(x0, x1) |
| | im = image.copy() |
| | sub_im = im[y0:y1,x0:x1].copy() |
| | blur_sub_im = gaussian(sub_im, sigma=sigma, multichannel=multichannel) |
| | blur_sub_im = np.round(255 * blur_sub_im) |
| | im[y0:y1,x0:x1] = blur_sub_im |
| | return im |
| |
|
| |
|
| |
|
| | def download(url, filename): |
| | data = requests.get(url).content |
| | with open(filename, 'wb') as handler: |
| | handler.write(data) |
| |
|
| | return filename |
| |
|
| |
|
| | def generate_random_filename(upload_directory, extension): |
| | filename = str(uuid4()) |
| | filename = os.path.join(upload_directory, filename + "." + extension) |
| | return filename |
| |
|
| |
|
| | def clean_me(filename): |
| | if os.path.exists(filename): |
| | os.remove(filename) |
| |
|
| |
|
| | def clean_all(files): |
| | for me in files: |
| | clean_me(me) |
| |
|
| |
|
| | def create_directory(path): |
| | os.makedirs(os.path.dirname(path), exist_ok=True) |
| |
|
| |
|
| | def get_model_bin(url, output_path): |
| | |
| | if not os.path.exists(output_path): |
| | create_directory(output_path) |
| |
|
| | urllib.request.urlretrieve(url, output_path) |
| |
|
| | |
| | |
| | |
| |
|
| | return output_path |
| |
|
| |
|
| | |
| | def get_multi_model_bin(model_list): |
| | for m in model_list: |
| | thread.start_new_thread(get_model_bin, m) |
| |
|
| |
|