Справочник по PHP




Манипулирование изображениями - часть 4


Header("Content-type: image/gif").

Т.к. библиотека GD, начиная с версии 1.6, не поддерживает формат GIF, данная функция используется редко.

imageCopy

Копирование части рисунка.

Синтаксис :

int imageCopy(int dst_im, int src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)

Функция копирует прямоугольную область начиная с позиции (src_x, src_y) шириной src_w

и высотой src_h из рисунка src_im в рисунок dst_im, придав копируемой области смещение (dst_x, dst_y).

В следующем примере будет картинка file1.png целиком скопирована в file2.png

<?php// Создаем первую картинку на основе готового изображения$im1=imageCreateFromPNG("img/file1.png");// Определяем ее размеры$size_x=imageSX($im1);$size_y=imageSY($im1);// Создаем вторую пустую картинку$im2=imageCreate($size_x,$size_y);// Копируем рисунок целиком из первого изображения во второеimageCopy($im2,$im1,0,0,0,0,$size_x,$size_y);// Сохранение скопированной картинки в файлеimagePNG($im2, "img/file2.png");?>

imageCopyResized

Копирование части рисунка с масштабированием.

Синтаксис :

int imageCopyResized(int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

Эта функция - одна из самых мощных и универсальных. С помощью нее можно копировать изображения (или их участки), перемещать или масштабировать их.

dst_im задает идентификатор изображения, в который будет помещен результат работы функции. Это изображение должно уже быть создано или загружено и иметь надлежащие размеры.

src_im - идентификатор изображения, над которым проводится работа. Впрочем, src_im и dst_imмогут и совпадать.

Параметры srcX, srcY, srcW, srcH задают область внутри исходного изображения, над которой будет осуществлена операция - соответственно, координаты ее верхнего левого угла, ширину и высоту.

Наконец, четверка dstX, dstY, dstW, dstH задает то место на изображении dst_im, в которое будет "втиснут" указанный в предыдущей четверке прямоугольник. Заметьте, что, если ширина или высота двух прямоугольников не совпадают, то картинка автоматически будет нужным образом растянута или сжата.

В следующем примере файл file1.jpg

уменьшается вдвое и записывается в файл file2.jpg:

<?php$old = imageCreateFromJpeg("img/file1.jpg");$w = imageSX($old);$h = imageSY($old);$w_new=rounr($w/2);$h_new=round($h/2);$new = imageCreate($w_new, $h_new);imageCopyResized($new, $old, 0, 0, 0, 0, $w_new, $h_new, $w, $h);imageJpeg($new, "img/file2.jpg");imageDestroy($old);imageDestroy($new);?>

imageDestroy

Уничтожение рисунка.

Синтаксис :

int imageDestroy(int im)

Функция уничтожает дескриптор im ранее созданного рисунка (наподобие закрытия файла fclose() после открытия fopen()).




Содержание  Назад  Вперед