jayparmr's picture
Upload folder using huggingface_hub
5c695cd
raw
history blame
1.35 kB
import io
import numpy as np
from PIL import Image
def to_bytes(image: Image.Image) -> bytes:
with io.BytesIO() as output:
image.save(output, format="JPEG")
return output.getvalue()
def resize_image(image: Image.Image, dimension: int = 512) -> Image.Image:
iw, ih = image.size
if iw > ih:
image = image.resize((dimension, int(dimension * ih / iw)))
else:
image = image.resize((int(dimension * iw / ih), dimension))
return image
def HWC3(x):
"x: numpy array"
assert x.dtype == np.uint8
if x.ndim == 2:
x = x[:, :, None]
assert x.ndim == 3
H, W, C = x.shape
assert C == 1 or C == 3 or C == 4
if C == 3:
return x
if C == 1:
return np.concatenate([x, x, x], axis=2)
if C == 4:
color = x[:, :, 0:3].astype(np.float32)
alpha = x[:, :, 3:4].astype(np.float32) / 255.0
y = color * alpha + 255.0 * (1.0 - alpha)
y = y.clip(0, 255).astype(np.uint8)
return y
def from_bytes(data: bytes) -> Image.Image:
return Image.open(io.BytesIO(data))
def padd_image(image: Image.Image, to_width: int, to_height: int) -> Image.Image:
iw, ih = image.size
img = Image.new("RGBA", (to_width, to_height), (0, 0, 0, 0))
img.paste(image, ((to_width - iw) // 2, (to_height - ih) // 2))
return img