123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- import os
- import requests
- import random
- import _thread as thread
- from uuid import uuid4
- 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), PIL.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.system("mkdir -p %s" % os.path.dirname(path))
- def get_model_bin(url, output_path):
- if not os.path.exists(output_path):
- create_directory(output_path)
- cmd = "wget -O %s %s" % (output_path, url)
- print(cmd)
- os.system(cmd)
- return output_path
- #model_list = [(url, output_path), (url, output_path)]
- def get_multi_model_bin(model_list):
- for m in model_list:
- thread.start_new_thread(get_model_bin, m)
|