Spaces:
Running
Running
| from io import BytesIO | |
| from PIL.PngImagePlugin import PngImageFile | |
| from PIL.JpegImagePlugin import JpegImageFile | |
| from typing import Union, List | |
| ImageLike = Union[PngImageFile, JpegImageFile] | |
| def resize_image(image: ImageLike, width: int, height: int) -> bytes: | |
| """resize image to the given width and height | |
| Args: | |
| image (ImageLike): input image to resize of type PngImageFile or JpegImageFile | |
| width (int): expected width of the image | |
| height (int): expected height of the image | |
| Returns: | |
| bytes: a new image with the given width and height in PNG format | |
| """ | |
| image = image.resize((width, height)) | |
| bytes_stream = BytesIO() | |
| image.save(bytes_stream, format='PNG') | |
| return bytes_stream.getvalue() | |
| def get_width_height(size: str) -> List: | |
| """get width and height of the image from the given size as a string, for example - | |
| size = '512x512' | |
| Args: | |
| size (str): size described as '_width_x_height_' example '512x512' | |
| Returns: | |
| List: returns a list of interger as [width, height] extracted from the | |
| given size | |
| """ | |
| # size = '512x512' | |
| return [int(val) for val in size.split("x")] # [512, 512] |