Блог старого компьютера

Блог старого компьютера


Главная PHP Обрезка изображения (вырезка куска) на PHP

Обрезка изображения (вырезка куска) на PHP

31.10.2012 09:14 Администратор PHP
Печать PDF
Довольно часто приходится на php  работать с изображениями. В этот раз мне понадобилась функция которая вырезает нужный кусок из изображения. Ознакомившись подробнее с php функциями для работы с изображениями я приступил к написанию моей пользовательской функции.  Основа моего кода является GD функция imagecopyresampled().

Код получился невелик но довольно работоспособный. Благодаря встроенному определению типа изображения функция может работать с gif, png, jpg файлами . Резальтат функция выдает в формате jpg. Собственно сам код функции:

function cutting($src, $dest, $new_width, $new_height, $left, $top){
if (!file_exists($src)) return false;
$size = getimagesize($src);
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$isrc = $icfunc($src);
$dst = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($dst, $isrc, 0, 0, $left, $top, $new_width, $new_height, $new_width, $new_height);
imagejpeg($dst, $dest, 95);
}

 Пример работы функции:

cutting("1.jpg", "photo1.jpg", 200, 100, 20, 20);

 Поясняю:

  1. $src - изображение которое будем обрезать
  2. $dest - собственно обработанное изображение
  3. $new_width - ширина изображения которую мы хотим получить
  4. $new_height - высота изображение которое хотим получить
  5. $left - координата x (координата x начала куска который необходимо брать)
  6. $top - координата y (координата y начала куска который необходимо брать)

Наглядное пояснение работы функции:

 

Думаю взглянув на изображение выше становится все ясно. На выходе мы получаем кусок изображения из черной рамки. Есть вопросы, обнаружены глюки, пишите разберемся.

Пример изображения обработанного функцией можно увидеть в самом верху статьи.

Комментарии  

 
0 #3 Алекс 09.07.2016 14:57
Подскажите, а как сделать обрезание по центру исходной картинки?
Цитировать
 
 
0 #2 Administrator 22.04.2013 16:04
Цитирую Деловой:
Подскажите пожалуйста, как можно добавить функцию вырезания картинки и уменьшения в pluxfolio?

\core\lib\class .plx.utils.php - в этом файле строка 252 (функция отвечающая за превьюшку)

А так идея хорошая, но не могу понять как приспособить в pluxfolio ...


О pluxfolio я даже ничего не слышал, но раз это нечто на php то можно использовать данный пример в статье.
Цитировать
 
 
0 #1 Деловой 06.04.2013 12:37
Подскажите пожалуйста, как можно добавить функцию вырезания картинки и уменьшения в pluxfolio?

\core\lib\class .plx.utils.php - в этом файле строка 252 (функция отвечающая за превьюшку)

А так идея хорошая, но не могу понять как приспособить в pluxfolio ...
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела