Нарисуйте закругленные углы на фото с помощью PIL

Мой сайт заполнен закругленными углами на каждой коробке и картинке, за исключением эскизов загруженных пользователем фотографий.

Как я могу использовать библиотеку изображений Python для "рисования" белых или прозрачных закругленных углов на каждом эскизе?

2 ответа

Решение

От Фредрика Лунда:

создайте изображение маски с закругленными углами (либо с помощью вашего любимого графического редактора, либо с помощью ImageDraw/aggdraw или чего-то подобного).

в вашей программе загрузите изображение маски и вырежьте четыре угла, используя "обрезать".

затем для каждого изображения создайте миниатюру как обычно и используйте угловые маски по углам миниатюры.

  • если вы хотите прозрачные углы, создайте изображение "L" с тем же размером, что и миниатюра, используйте "paste", чтобы добавить маски углов в это изображение, а затем "putalpha", чтобы прикрепить альфа-слой к миниатюре.

  • если вы хотите сплошные углы, используйте вместо этого "вставить" на миниатюру, используя сплошной цвет в качестве источника.

http://mail.python.org/pipermail/python-list/2008-January/472508.html

Не лучше ли (если предположить, что HTML - это результат) использовать HTML и CSS, чтобы наложить на эти картинки несколько скругленных границ? Таким образом, если вы хотите изменить внешний вид своего сайта, вам не нужно выполнять никакую повторную обработку изображений, и вам не нужно вообще обрабатывать изображения.

Другие вопросы по тегам