Обрезка изображения с помощью Python Pillow
Я установил Python Pillow и пытаюсь обрезать изображение.
Другие эффекты отлично работают (например, миниатюра, размытие изображения и т. Д.)
Всякий раз, когда я запускаю приведенный ниже код, я получаю сообщение об ошибке:
плитка не может распространяться за пределы изображения
test_image = test_media.file
original = Image.open(test_image)
width, height = original.size # Get dimensions
left = width/2
top = height/2
right = width/2
bottom = height/2
cropped_example = original.crop((left, top, right, bottom))
cropped_example.show()
Я использовал пример обрезки, который я нашел для PIL, потому что я не мог найти один для Pillow (который я предположил, будет тем же самым).
2 ответа
Проблема в логике, а не в подушке. Подушка почти на 100% совместима с PIL. Вы создали изображение 0 * 0
(left = right & top = bottom
) размер. Ни один дисплей не может показать это. Мой код выглядит следующим образом
from PIL import Image
test_image = "Fedora_19_with_GNOME.jpg"
original = Image.open(test_image)
original.show()
width, height = original.size # Get dimensions
left = width/4
top = height/4
right = 3 * width/4
bottom = 3 * height/4
cropped_example = original.crop((left, top, right, bottom))
cropped_example.show()
Скорее всего, это не то, что вы хотите, но это должно дать вам четкое представление о том, что должно быть сделано.
код обрезки изображения подушки:
img2 = img.crop((200, 330, 730, 606)) # (left, top, right, bottom)
Но, тем, кто торопится или глуп, как я - вот абстракция-:)