dzarezenko
@dzarezenko
Веб-разработчик

Имеет ли смысл конвертировать все изображения на сайте в PNG?

Представьте ситуацию


Необходимо повысить посещаемость сайта. Возникло такое предложение: конвертировать все изображения на ресурсе в формат PNG. Ресурс представляет собой пока еще маленькую социальную сеть с посещаемостью около 2500 посещений в сутки. В ней около 3500 тысяч профайлов и естественно основные изображения — их фотографии, практически все в формате JPG.

Вопрос


Имеет ли смысл переводить все изображения в формат PNG и в дальнейшем при аплоаде изображений тоже их конвертировать в PNG?
  • Вопрос задан
  • 6434 просмотра
Решения вопроса 1
MTonly
@MTonly
Веб-разработчик с 2002 года
В вашем случае имеет смысл настроить серверные HTTP-заголовки для кэширования изображений в браузере на несколько дней (иногда рекомендуют даже на месяц). На уровне htaccess это можно сделать так:

ExpiresActive on
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
ahromenko
@ahromenko
Я считаю не нужно. Фотографии в PNG это странно. В PNG только иконки, небольшие элементы дизайна.
Ответ написан
Комментировать
MTonly
@MTonly
Веб-разработчик с 2002 года
1. Принцип сжатия JPEG основан на разбиении изображения на квадраты 8×8 пикселов и заливке этих квадратов градиентами. Подходит для фотографий (где по определению много градиентов и мало чётких объектов) и не подходит для штриховых изображений типа схем (для наглядности следует попытаться представить, что становится, скажем, с однопиксельной линией при попытке представить её как градиент 8×8; полезно также рассмотреть такое JPEG-изображение при сильном увеличении).

2. Принцип сжатия GIF и PNG-8 (не путать с PNG-24) основан на сужении цветовой палитры до минимума, достаточного для более-менее корректного отображения изображения. За счёт сужения палитры каждый вариант цвета можно закодировать меньшим количеством байт, этим (помимо алгоритмов архивации) и достигается сжатие. Максимальное количество оттенков — 256. Соответственно, GIF и PNG-8 хорошо подходят для субъективно беспотерьного (кодируется каждый пиксел) сжатия штриховых изображений с однотонными областями и небольшим количеством оттенков (логотипов, графиков, схем и проч.) и НЕ подходит для подавляющего большинства фотографических изображений (в фотографиях количество оттенков обычно сильно больше, чем 256, а если и не больше, то объём файла получается неоправданно большим, поскольку GIF/PNG-8 честно кодируют каждый пиксел изображения).

3. PNG-24 (не путать с PNG-8) — сжатие вообще без потерь. По сути специализированный архиватор для изображений. Соответственно, объём выходного файла наибольший и обычно значительно больше, чем у GIF/PNG-8, равно как и JPEG. Обычно применяется либо при необходимости сжатия без потерь, либо при необходимости использовать полупрозрачность, либо при сохранении протяженных однотонных областей и/или однонаправленных градиентов (такие градиенты сжимает эффективнее, чем GIF/PNG-8).
Ответ написан
kekekeks
@kekekeks
А смысл? Изображение и так пережато с потерями, сохранение в PNG их не восстановит. А вот места занимать картинки будут больше. Такие дела.
Ответ написан
Комментировать
marcus
@marcus
Форматы следует использовать по назначению. ПНГ предназначен для хранения прозрачных и полупрозрачных изображений, Джпег для хранения фотографий, а ГИФ для хранения самой примитивной графики. Алгоритмы сжатия каждого из форматов заточены конкретно под свои нужды. Если сохранить фотографию в пнг, а пиктограмму в джпеге — их размер вырастет в разы. Так что ваша оптимизация выльется в огромные тормоза ;-)
Ответ написан
georgthegreat
@georgthegreat
Если картинка была сжата JPEG, то, вследствие искажений, PNG она сожмется очень плохо.
Если у вас есть несжатые исходники, то есть смысл посмотреть, какой кодировщик эффективнее работает на конкретной картнике.

Фотографии значительно лучше сожмутся JPEG, логотипы, градиенты — PNG.
Ответ написан
Комментировать
Vasya_Sh
@Vasya_Sh
Фотографии — в JPEG, все остальное — в PNG.
GIF совсем устарел.
Ответ написан
Комментировать
@bdmalex
Необходимо повысить посещаемость сайта. Возникло такое предложение: конвертировать все изображения на ресурсе в формат PNG.

Долго пытался понять зачем Вам это нужно. От того, что у вас на сайте все картинки в PNG будут посещаемость не возрастёт. Если есть желание «сэкономить на ресурсах железа»,
то перевод картинок — один из вариантов экономии, хотя на мой взгляд совершенно малопонятный.
Посещаемость 2500 посещений в день — это нагрузка ВДС сервера с 512М ОЗУ, который можно купить за 450-500р в месяц. И такого конфига я думаю хватит примерно до 10000 посещений в день(если не больше).
Возникнут проблемы с ресурсом — не проблема перейти на более старший тариф с 1Гб ОЗУ и более мощным процессором за 850-900р. Плюс при такой посещаемости имеет смысл начать задумываться о монетизации ресурса
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы