tutorial pil library for python python-imaging-library

pil - python image library



Problemas al usar la biblioteca PIL de Python para recortar y guardar imágenes (2)

Intento recortar una imagen bastante alta resolución y guardar el resultado para asegurarme de que esté completa. Sin embargo, sigo recibiendo el siguiente error independientemente de cómo uso el método guardar: SystemError: tile cannot extend outside image

from PIL import Image # size is width/height img = Image.open(''0_388_image1.jpeg'') box = (2407, 804, 71, 796) area = img.crop(box) area.save(''cropped_0_388_image1'', ''jpeg'') output.close()


La caja es (izquierda, arriba, derecha, abajo) así que tal vez quisiste decir (2407, 804, 2407 + 71, 804 + 796)?

Editar : Las cuatro coordenadas se miden desde la esquina superior / izquierda y describen la distancia desde esa esquina hasta el borde izquierdo, el borde superior, el borde derecho y el borde inferior.

Su código debería verse así, para obtener un área de 300x200 desde la posición 2407,804:

left = 2407 top = 804 width = 300 height = 200 box = (left, top, left+width, top+height) area = img.crop(box)


Prueba esto:

es un código simple para recortar una imagen, y funciona como un amuleto;)

import Image def crop_image(input_image, output_image, start_x, start_y, width, height): """Pass input name image, output name image, x coordinate to start croping, y coordinate to start croping, width to crop, height to crop """ input_img = Image.open(input_image) box = (start_x, start_y, start_x + width, start_y + height) output_img = input_img.crop(box) output_img.save(output_image +".png") def main(): crop_image("Input.png","output", 0, 0, 1280, 399) if __name__ == ''__main__'': main()

En este caso, la imagen de entrada es 1280 x 800 px y el croped es 1280 x 399px comenzando en la esquina superior izquierda.