Без потерь сжатия изображений на django
Я делаю оптимизацию, и Google рекомендует сжатие Lossless для изображений, ища способ реализовать это в Django.
Здесь изображения, которые они указали, я думаю, что для того, чтобы это было сделано эффективно, его необходимо внедрить по всей стране, возможно, используя класс промежуточного программного обеспечения, задаваясь вопросом, действительно ли кто-то это сделал раньше. Здесь ссылка на google analytics для pagespeed https://developers.google.com/speed/pagespeed/insights/?url=www.kenyabuzz.com
Оптимизация изображений
Правильное форматирование и сжатие изображений может сэкономить много байтов данных.
Оптимизируйте следующие изображения, чтобы уменьшить их размер на 627.3KiB (уменьшение на 74%).
Losslessly compressing http://www.kenyabuzz.com/media/uploads/clients/kenya_buzz_2.jpg could save 594.3KiB (92% reduction).
Losslessly compressing http://www.kenyabuzz.com/media/uploads/clients/new_tribe_2.jpg could save 25KiB (44% reduction).
Losslessly compressing http://www.kenyabuzz.com/…a/uploads/clients/EthiopianAirlines2.jpg could save 3KiB (22% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/images/Nightlife.Homepage.jpg could save 1.3KiB (2% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/blog.png could save 1.1KiB (43% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/twitter.png could save 969B (52% reduction).
Losslessly compressing http://www.kenyabuzz.com/…der-Board---Email-Signature--Neutral.jpg could save 920B (2% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/youtube.png could save 757B (31% reduction).
Ответы
Ответ 1
Без потерь сжатия http://www.kenyabuzz.com/media/uploads/clients/kenya_buzz_2.jpg может сэкономить 594.3KiB (снижение на 92%).
Прежде всего, информация в журналах является довольно вводящей в заблуждение, поскольку невозможно сжать изображения на 92% с использованием формата без потерь (за исключением некоторых случаев, таких как одноцветные изображения, основные геометрические фигуры, такие как квадраты и т.д.). Подробнее читайте этот ответ и этот ответ. Действительно, прочитайте их, оба отличные ответы.
Во-вторых, вы можете использовать форматы сжатия с потерями "без потери качества" – различия настолько тонкие, человеческий глаз даже не замечает.
Итак, я загрузил изображение с сайта, который вы оптимизируете по этой ссылке: http://www.kenyabuzz.com/media/uploads/clients/kenya_buzz_2.jpg
Я открыл свою консоль Python и написал следующее:
>>> from PIL import Image
>>> # Open the image
>>> im = Image.open("kenya_buzz_2.jpg")
>>> # Now save it
>>> im.save("kenya_buzz_compressed.jpg", format="JPEG", quality=70)
Это создало новое изображение на моем диске. Ниже приведены оба изображения.
Оригинал (655.3kB)
![исходное изображение]()
Сжатый (уменьшение 22,4 кБ ~ 96% @качество = 70)
![сжатое изображение с использованием Python]()
Вы можете играть с опцией quality
. Например, значение 80
даст вам изображение лучшего качества, но с небольшим большим размером.
Ответ 2
Вам следует попробовать приложение Django Easy Thumbnails, у него есть некоторые опции для добавления постобработки для оптимизации загруженных изображений: Документация по PostProcessor
Я использую его в производстве по нескольким проектам.
Он работает хорошо, размер изображения определенно меньше и загрузка страницы намного быстрее.
Ответ 3
У меня нет опыта с этим, однако picopt
выглядит всесторонне. Он широко использует внешние инструменты для оптимизации, поэтому может быть сложно настроить в средах с ограниченным или размещенным сервером.
Кроме этого, попробуйте googling "оптимизация образа python". Есть еще несколько ссылок, которые предполагают, что решение на основе PIL может быть возможно, например: