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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как обрезать часть изображения и сохранить результат?
 
 автор: pengo   (22.02.2006 в 13:39)   письмо автору
 
 

Есть изображение в формате jpeg. Надо обрезать часть с заданными координатами и сохранить полученное изображение.
Подскажите функцию php.

   
 
 автор: Artemy   (22.02.2006 в 14:09)   письмо автору
 
   для: pengo   (22.02.2006 в 13:39)
 

Встроенной функции для таких целей пока не существует прийдется писать свою функцию.
Сейчас попробую!

   
 
 автор: pengo   (22.02.2006 в 14:11)   письмо автору
 
   для: Artemy   (22.02.2006 в 14:09)
 

буду очень благодарен.

   
 
 автор: Artemy   (22.02.2006 в 14:39)   письмо автору
 
   для: pengo   (22.02.2006 в 14:11)
 

Как обещал.
<?PHP
 
//Функция создания вырезанной копии
 // $filename - путь к файлу
 // $x1,$y1 - Верхняя левая точка, вырезаемого кусочка изображения
 // $x2,$y2 - нижняя правая точка, вырезаемого кусочка изображения
 
function CanvasImage($filename,$x1,$y1,$x2,$y2){
   if(
file_exists($filename)){
     
$w=$x2-$x1;
     
$h=$y2-$y1;
     
//создадим пустое изображение по заданным размерам
     
$dest_img=@imagecreatetruecolor($w,$h);
     
$src_img=@imagecreatefromjpeg($filename);
     
//Копируем
     
@imagecopyresampled($dest_img,$src_img,0,0,$x1,$y1,$w,$h,$w,$h);
     
//сохраняем уменьшенную копию в файл
     
@imagejpeg($dest_img,"filename.jpg");
     
//чистим память от созданных изображений
     
@imagedestroy($dest_img);
     @
imagedestroy($src_img);
     return 
true;
   }else{
     return 
false;
   }
 }
 
//Вызываем функцию
 
CanvasImage("image.jpg",10,10,100,100);
?>

   
 
 автор: pengo   (22.02.2006 в 14:40)   письмо автору
 
   для: Artemy   (22.02.2006 в 14:39)
 

спасибочки. Сейчас попробую.

   
 
 автор: pengo   (22.02.2006 в 15:57)   письмо автору
 
   для: Artemy   (22.02.2006 в 14:39)
 

если функции передать имя файла в виде /home/test.ua/www/foto/99.jpg или http://test.ua/foto/".$f, то не работает.
Как быть?

   
 
 автор: Artemy   (22.02.2006 в 16:07)   письмо автору
 
   для: pengo   (22.02.2006 в 15:57)
 

Нужно указывать путь относительно корневого каталога, видемого по http.
Т.е. вместо /home/test.ua/www/foto/99.jpg нужно указать foto/99.jpg, я не гарантирую что это Вам поможет.
Я проверял, эта функция рабочая. У Вас проблема с путями, Вы не правельно их указываете, так что разберайтесь с ними.

   
 
 автор: pengo   (22.02.2006 в 16:17)   письмо автору
 
   для: Artemy   (22.02.2006 в 16:07)
 

разобрался. Работает. Спасибо, друг!

   
Rambler's Top100
вверх

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