ProfiPHPProfiPHP
Категория: Графические функции

Функция Imagecopyresampled

Функция Imagecopyresampled копирует и изменяет размер изображения с ресемплированием.
bool imagecopyresampled( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h )
Функция Imagecopyresampled копирует прямоугольную часть одного изображения на другое изображение, интерполируя значения пикселей таким образом, чтобы уменьшение размера изображения не уменьшало его четкости.

Другими словами, функция Imagecopyresampled берет прямоугольный участок из Src_image с шириной Src_w и высотой Src_h на координатах Src_x,Src_y и помещает его в прямоугольный участок изображения Dst_image шириной Dst_w и высотой Dst_h на координатах Dst_x,Dst_y.

Если координаты, ширина или высота исходного и конечного изображений различны, копируемый фрагмент будет растянут или сжат. Координаты отсчитываются от левого верхнего угла изображения. Функцию можно использовать для наложения участков на то же изображение, с которого они скопированы (если Dst_image имеет то же значение, что и Src_image), но если участки будут пересекаться, результат непредсказуем.

Параметр Dst_image являет собой ресурс целевого изображения.

В параметре Src_image указывается ресурс исходного изображения.

В параметре Dst_x указывается x-координата результирующего изображения.

В параметре Dst_y указывается y-координата результирующего изображения.

В параметре Src_x указывается x-координата исходного изображения.

В параметре Src_y указывается y-координата исходного изображения.

В параметре Dst_w указывается результирующая ширина.

В параметре Dst_h указывается результирующая высота.

В параметре Src_w указывается ширина исходного изображения.

В параметре Src_h указывается высота исходного изображения.

Функция Imagecopyresampled возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример работы:
$filename = 'Desert.jpg';
$percent = 0.5;
header( 'Content-Type: image/jpeg' );
list( $width, $height ) = getimagesize( $filename );
$new_width = $width * $percent;
$new_height = $height * $percent;
$image_p = imagecreatetruecolor( $new_width, $new_height );
$image = imagecreatefromjpeg( $filename );
imagecopyresampled( $image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
imagejpeg( $image_p, null, 100 );
Результатом работы примера будет уменьшение в 2 раза исходного изображения.

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

Имя:
Текст комментария: