File size: 1,013 Bytes
19b3da3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a3d6c18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import io

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_to512(image: Image.Image) -> Image.Image:
    iw, ih = image.size
    if iw > ih:
        image = image.resize((512, int(512 * ih / iw)))
    else:
        image = image.resize((int(512 * iw / ih), 512))
    return image


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

    value = min(to_width, to_height)
    # resize Image
    if iw > ih:
        image = image.resize((value, int(value * ih / iw)))
    else:
        image = image.resize((int(value * iw / ih), value))

    # padd 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