php и jpeg

Форум для программистов

Сообщение NosferatY » Вт мар 23, 2004 6:43 pm

Собсвтенно такой вопросик у меня.
Зотелось бы знать, возможна ли "подгонка" размера (объема) какртики под заданные параметры?
Хотелось бы реализовать вот что:
* заливка картинки в формате jpeg на сервер (реализовано)
* проверка картинки на объем, и если она больше какого-то задонного объема, то ее уменьшение до требуемого значения. (собственно сам вопрос :] )
PS
все это на php. Если надо прикрутить какую то внешнюю библиотеку - то какую.
NosferatY
Ефрейтор :)
 
Сообщений: 10
Зарегистрирован: Пт ноя 07, 2003 9:23 am
Откуда: Москва
Пункты репутации: 0

Сообщение eduha » Вт мар 23, 2004 8:09 pm

2NosferatY
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Если надо прикрутить какую то внешнюю библиотеку - то какую<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Нужно. GD


Так можно подогнать ширину картинки:

<?
if(!@$photo){
exit;
}

$new_width=200; // новая ширина в пикселях
Header("Content-type: image/jpg");
$im=ImageCreateFromJPEG($photo);
if(ImageSX($im)<$new_width){
ImageJPEG($im);
}else{
$new_height=(ImageSY($im)*$new_width)/ImageSX($im);
$new_im = ImageCreate($new_width,$new_height);
ImageCopyResized($new_im,$im,0,0,0,0,$new_width,$new_height,ImageSX($im),ImageSY($im));
ImageJPEG($new_im);
}
ImageDestroy($im);
?>

Скрипту должено передаваться имя файла в параметре photo
(например, file.php?photo=photo.jpg)
Если хочешь, чтобы новая картинка перезаписывала старую, вместо ImageJPEG($new_im) напиши ImageJPEG($new_im,$photo)
<span style='color:blue'>Мэджик пипл, вуду пипл</span>
eduha
Капитан
 
Сообщений: 233
Зарегистрирован: Пн авг 11, 2003 4:39 pm
Откуда: Караганда / Казахстан
Пункты репутации: 0

Сообщение NosferatY » Вт мар 23, 2004 8:24 pm

эх, не совсем то, мне надо не размер подогнать, а объем...
просто размер картинки (ширина/высота) не критичны, а вот место которое она займет... Мне собственно и надо как то заливаемые картинки уменьшить в объеме, а не размере, т.е. скажем стоит ограничение что картинка должна быть не больше 200 кб, если же попытаться залить картинку большего объема - то он должен ее привести к требуемому, т.е. <200 кб....
NosferatY
Ефрейтор :)
 
Сообщений: 10
Зарегистрирован: Пт ноя 07, 2003 9:23 am
Откуда: Москва
Пункты репутации: 0

Сообщение MAPA3bM » Ср мар 24, 2004 5:11 am

2NosferatY
А для этого нужны спецовые проги именно по работе с графикой. В *nix системах есть convert (из пакета ImageMagick), в виндозных и в самом php - не знаю..
MAPA3bM
Полковник
 
Сообщений: 1270
Зарегистрирован: Вт дек 31, 2002 12:54 am
Откуда: Приморье
Пункты репутации: 0

Сообщение Миша Спларов » Ср мар 24, 2004 6:50 pm

2NosferatY
не давай закачивать сильно большие файлы
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение NosferatY » Ср мар 24, 2004 6:55 pm

это не выход, ограничение то и так есть, просто хотелось бы облегчить жизнь пользователей, и не заствалять их самих подгонять фотки под нужные параметры.
NosferatY
Ефрейтор :)
 
Сообщений: 10
Зарегистрирован: Пт ноя 07, 2003 9:23 am
Откуда: Москва
Пункты репутации: 0

Сообщение SiMM » Чт мар 25, 2004 1:02 pm

2NosferatY, попробуй побаловаться третьим параметром (качество изображения) функции ImageJpeg - по умолчанию его значение равно примерно 75. Наверно, единственный способ - его перебор или что-нибудь из численных методов типа деления пополам ;)
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение NosferatY » Сб мар 27, 2004 6:04 pm

2 SiMM: пасибо :)
это уже гораздо ближе к тому что надо :)
NosferatY
Ефрейтор :)
 
Сообщений: 10
Зарегистрирован: Пт ноя 07, 2003 9:23 am
Откуда: Москва
Пункты репутации: 0

Сообщение SiMM » Пн мар 29, 2004 4:40 am

2NosferatY, есть ещё один способ немного уменьшить объём JPG-файлов - подробности можешь посмотреть <a href='http://bolk.exler.ru/readme/020917.htm' target='_blank'>здесь</a>
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0


Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron