Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Обработка изображений

Сообщения:  [1-3] 

 
 автор: Петр   (01.08.2007 в 06:36)   письмо автору
 
   для: GAV   (22.06.2007 в 15:22)
 


<?
// Загрузка файла на сервер;
...

// $src - имя файла;
// $width - новый размер изображения;

// Цвет фона;
$rgb=0xFFFFFF;
// Качество изображения;
$quality=100;
if (!
file_exists($src)) return false;
$size getimagesize($src);
if (
$size === false) return false;
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc "imagecreatefrom" $format;
if (!
function_exists($icfunc)) return false;
(int)
$height $size[1] * $width $size[0];
$x_ratio $width $size[0];
$y_ratio $height $size[1];
$ratio min($x_ratio$y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width $use_x_ratio $width  floor($size[0] * $ratio);
$new_height = !$use_x_ratio $height floor($size[1] * $ratio);
$new_left $use_x_ratio floor(($width $new_width) / 2);
$new_top = !$use_x_ratio floor(($height $new_height) / 2);
$isrc $icfunc($src);
$idest imagecreatetruecolor($width$height);
imagefill($idest00$rgb);
imagecopyresampled($idest$isrc$new_left$new_top00,
$new_width$new_height$size[0], $size[1]);
$white ImageColorAllocate($idest255255255);
// Перезапись файла;
$fh=fopen($src,'w');
fclose($fh);
imagejpeg($idest$src$quality);
imagedestroy($isrc);
imagedestroy($idest);
return 
true;
?>

Если надо не переписывать файл, а создать другой (уменьшенную копию), то нужно изменить строку $fh=fopen($src,'w'); на $fh=fopen($src.'_min','w');

   
 
 автор: kasmanaft   (22.06.2007 в 15:35)   письмо автору
 
   для: GAV   (22.06.2007 в 15:22)
 

Вот http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145
Попробуйте также поиск по "уменьш картинк" ... только логику на "и" поменяйте...

   
 
 автор: GAV   (22.06.2007 в 15:22)   письмо автору
 
 

Есть необходимость предоствить пользователям загружать фотографии на сайт (своего рода мини фотоальбомчик). И конечно же фотографии бывают разного размера. А как хочется чтобы выдовались маленькие картиночки для предварительного просмотра и большие если пользователь захочет посмотреть поближе. Можно конечно это решить предоствив пользователю два поля для загрузки, мальньких и больших изображений. Но это требует от пользователя лишних усилий и определенных навыков работы с изображениями. Можно просто взять и задать в теге <img> параметры размера изображения и тогда большое изображение сожмется, но это тоже не годится, т.к. большие изображения могут весить не 1Мб и не 2Мб, тяжеловато выйдет если на странице вывести 9 фотографий по 2Мб. Тогда в голову приходит третий способ, а можно ли при загрузке одной фотографии делать ее аналог, но меньшего размера и выдавать за маленькое изображение? Ну например как-то установить большую сторону изображения, допустим равной 100рх с пропорциональным уменьшением другой стороны. Может кто из специалистов знает как это сделать. Или предложит еще какой способ(хотя меня больше интересует именно этот =) )?

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования