Spaces:
Runtime error
Runtime error
| from PIL import Image | |
| def repeat_partent(image: Image, new_width: str, new_height: str): | |
| ''' | |
| This function takes an image and repeats the partent in the image to fill the target_tile_size. | |
| ''' | |
| width, height = image.size | |
| new_width, new_height = int(new_width), int(new_height) | |
| # calculate the width of every partent in the image | |
| o = new_width//width | |
| list_width = [width]*o | |
| r = new_width%width | |
| if r > 0: | |
| list_width.append(r) | |
| # calculate the height of every partent in the image | |
| o = new_height//height | |
| list_height = [height]*o | |
| r = new_height%height | |
| if r > 0: | |
| list_height.append(r) | |
| # create a new image with the new width and height | |
| new_image = Image.new('RGB', (new_width, new_height)) | |
| w_start, h_start = 0, 0 | |
| for w in list_width: | |
| for h in list_height: | |
| if h < height or w < width: | |
| new_image.paste(image.crop((0, 0, w, h)), (w_start, h_start)) | |
| else: | |
| new_image.paste(image, (w_start, h_start)) | |
| h_start += h | |
| w_start += w | |
| h_start = 0 | |
| return new_image | |
| # test the function | |
| if __name__ == '__main__': | |
| image = Image.open("input.png") | |
| result = repeat_partent(image=image, new_width=2000, new_height=1000) | |
| result.save("output.png") | |