| 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) |
|
|
|
|