Spaces:
Running
Running
Update src/util.py
Browse files- src/util.py +22 -3
src/util.py
CHANGED
|
@@ -1,7 +1,9 @@
|
|
| 1 |
import concurrent.futures
|
| 2 |
import io
|
| 3 |
import os
|
|
|
|
| 4 |
|
|
|
|
| 5 |
import oss2
|
| 6 |
import requests
|
| 7 |
from PIL import Image
|
|
@@ -18,6 +20,19 @@ bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, buck
|
|
| 18 |
oss_path = os.getenv("OSS_PATH")
|
| 19 |
|
| 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
def download_img_pil(index, img_url):
|
| 22 |
r = requests.get(img_url, stream=True)
|
| 23 |
if r.status_code == 200:
|
|
@@ -43,16 +58,20 @@ def download_images(img_urls, batch_size):
|
|
| 43 |
return imgs_pil
|
| 44 |
|
| 45 |
|
| 46 |
-
def upload_np_2_oss(input_image, name="cache.
|
| 47 |
assert name.lower().endswith((".png", ".jpg")), name
|
|
|
|
|
|
|
| 48 |
imgByteArr = io.BytesIO()
|
| 49 |
if name.lower().endswith(".png"):
|
| 50 |
-
Image.fromarray(input_image).save(imgByteArr, format="PNG")
|
| 51 |
else:
|
| 52 |
-
Image.fromarray(input_image).save(imgByteArr, format="JPEG", quality=95)
|
| 53 |
imgByteArr = imgByteArr.getvalue()
|
| 54 |
|
|
|
|
| 55 |
bucket.put_object(oss_path + "/" + name, imgByteArr)
|
| 56 |
ret = bucket.sign_url('GET', oss_path + "/" + name, 60 * 60 * 24)
|
|
|
|
| 57 |
del imgByteArr
|
| 58 |
return ret
|
|
|
|
| 1 |
import concurrent.futures
|
| 2 |
import io
|
| 3 |
import os
|
| 4 |
+
import time
|
| 5 |
|
| 6 |
+
import cv2
|
| 7 |
import oss2
|
| 8 |
import requests
|
| 9 |
from PIL import Image
|
|
|
|
| 20 |
oss_path = os.getenv("OSS_PATH")
|
| 21 |
|
| 22 |
|
| 23 |
+
def resize(img, short_side_length=512):
|
| 24 |
+
height, width, _ = img.shape
|
| 25 |
+
aspect_ratio = width / height
|
| 26 |
+
if width > height:
|
| 27 |
+
new_width = short_side_length
|
| 28 |
+
new_height = int(new_width / aspect_ratio)
|
| 29 |
+
else:
|
| 30 |
+
new_height = short_side_length
|
| 31 |
+
new_width = int(new_height * aspect_ratio)
|
| 32 |
+
resized_img = cv2.resize(img, (new_width, new_height))
|
| 33 |
+
return resized_img
|
| 34 |
+
|
| 35 |
+
|
| 36 |
def download_img_pil(index, img_url):
|
| 37 |
r = requests.get(img_url, stream=True)
|
| 38 |
if r.status_code == 200:
|
|
|
|
| 58 |
return imgs_pil
|
| 59 |
|
| 60 |
|
| 61 |
+
def upload_np_2_oss(input_image, name="cache.jpg"):
|
| 62 |
assert name.lower().endswith((".png", ".jpg")), name
|
| 63 |
+
if name.lower().endswith(".png"):
|
| 64 |
+
name = name[:-4] + ".jpg"
|
| 65 |
imgByteArr = io.BytesIO()
|
| 66 |
if name.lower().endswith(".png"):
|
| 67 |
+
Image.fromarray(resize(input_image)).save(imgByteArr, format="PNG")
|
| 68 |
else:
|
| 69 |
+
Image.fromarray(resize(input_image)).save(imgByteArr, format="JPEG", quality=95)
|
| 70 |
imgByteArr = imgByteArr.getvalue()
|
| 71 |
|
| 72 |
+
start_time = time.perf_counter()
|
| 73 |
bucket.put_object(oss_path + "/" + name, imgByteArr)
|
| 74 |
ret = bucket.sign_url('GET', oss_path + "/" + name, 60 * 60 * 24)
|
| 75 |
+
logger.info(f"upload cost: {time.perf_counter() - start_time} s.")
|
| 76 |
del imgByteArr
|
| 77 |
return ret
|