El código se muestra a continuación:
from PIL import Image
# 读取图像
img = Image.open("mypic.jpg")
# 获取图像的宽度和高度
width, height = img.size
# 计算需要切割的区域的左上角和右下角坐标
if width / height >= 256 / 192: # 宽高比大于等于256/192
new_width = height / 192 * 256
left = (width - new_width) / 2
top = 0
right = left + new_width
bottom = height
else: # 宽高比小于256/192
new_height = width / 256 * 192
left = 0
top = (height - new_height) / 2
right = width
bottom = top + new_height
# 切割图像
img_cropped = img.crop((left, top, right, bottom))
# 调整图像大小
img_resized = img_cropped.resize((256, 192))
# 保存图像
img_resized.save("mypic_cropped.jpg")
Primero leemos la imagen usando la función Image.open(). Luego obtenemos el ancho y el alto de la imagen y calculamos las coordenadas superior izquierda e inferior derecha del área que debe cortarse en función de la proporción. Como queremos eliminar los lados izquierdo y derecho, las coordenadas superior e inferior permanecen sin cambios. Las coordenadas izquierda y derecha son el ancho o alto de la imagen ajustado de acuerdo con la proporción menos 256 o 192 y dividido por 2 para garantizar que el área de corte sea centrado. Finalmente, usamos la función crop() para cortar la imagen, luego usamos la función resize() para cambiar el tamaño de la imagen a 192x256 y usamos la función save() para guardar la imagen cortada y redimensionada.