Конвертация изображений из png в jpg
Как можно сделать автоматическую конвертацию загружаемых изображений из PNG в JPG? Чтобы еще и поддержка watermark'а осталась.
Просто пользователи совсем не задумываются, когда загружают изображения 500 на 500 px размером больше мегабайта.
поставить ограничение по размеру, что пользователи начали думать сами
Один из вариантов, но тоже с недостатками. Поставлю ограничение 1мб. Загрузят png 980кб, а при конвертации в jpg картинка будет 50кб весить.
На wp привык, там плагин есть, который автоматом обрезает по размерам и формат меняет и можно не думать об ограничении для юзеров.
$size=GetImageSize ($path2);
//Создаём новое изображение из «старого»
$src=ImageCreateFromJPEG ($path2);
//Берём числовое значение ширины фотографии, которое мы получили в первой строке и записываем это число в переменную
$iw=$size[0];
//Проделываем ту же операцию, что и в предыдущей строке, но только уже с высотой.
$ih=$size[1];
//Ширину фотографии делим на 200 т.к. на выходе мы хотим получить фото шириной в 200 пикселей. В результате получаем коэфициент соотношения ширины оригинала с будущей превьюшкой.
$koe=$iw/200;
//Делим высоту изображения на коэфициент, полученный в предыдущей строке, и округляем число до целого в большую сторону — в результате получаем высоту нового изображения.
$new_h=ceil ($ih/$koe);
//Создаём пустое изображение шириной в 200 пикселей и высотой, которую мы вычислили в предыдущей строке.
$dst=ImageCreateTrueColor (200, $new_h);
//Данная функция копирует прямоугольную часть изображения в другое изображение, плавно интерполируя пикселные значения таким образом, что, в частности, уменьшение размера изображения сохранит его чёткость и яркость.
ImageCopyResampled ($dst, $src, 0, 0, 0, 0, 200, $new_h, $iw, $ih);
//Сохраняем полученное изображение в формате JPG
ImageJPEG ($dst, $path3, 80);
imagedestroy($src);
Что то типа этого?
Что то типа этого?
Для меня это немного сложно выглядит. По размерам — устраивает функционал "пресетов" из коробки. Если бы туда галочку добавить "преобразовать в jpg" — было бы идеально.
Есть такое в планах.Если бы туда галочку добавить "преобразовать в jpg" — было бы идеально.
Есть такое в планах.
Отличные новости! Буду с нетерпением ждать!
jpg не поддерживает прозрачность и слои. Будет невозможно выложить например картинку без фона.
Поэтому и нужно дать право выбора. Я бы спокойно отказался от прозрачности.
Еще можно в ссылку на скачивание программ для сжатия носом натыкать. И страницу с инструкциями по пользованию сайтом написать.поставить ограничение по размеру, что пользователи начали думать сами
Еще можно в ссылку на скачивание программ для сжатия носом натыкать. И страницу с инструкциями по пользованию сайтом написать.
Все можно — это безусловно. Но если вы хоть раз работали с крупными сайтами, где пользователями генерируется почти 100% контента, то знаете, что полностью соблюдать инструкции способны единицы из них.
В целом тему можно считать закрытой, так как Fuze, обнадежил появлением функционала конвертации в коробке.