Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_gdmanipul.php on line 23

Warning: include(http://altcode.ru/include/style.php) [function.include]: failed to open stream: no suitable wrapper could be found in /home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_gdmanipul.php on line 23

Warning: include() [function.include]: Failed opening 'http://altcode.ru/include/style.php' for inclusion (include_path='.:') in /home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_gdmanipul.php on line 23

ALTCODE

Программирование - ALTCODE.ru   Все о языках программирования.

Assembler |  C  |  C++ |  Visual C++ |  C++ Builder |  C# |  Pascal |  Delphi |  BASIC |  Visual Basic |  Visual Basic .NET 
Java |  Perl |  Visual FoxPro |  Ruby |  PHP |  MySQL 
 Главная / PHP / Справочник по PHP (краткий)
Главная
Карта сайта
Наши партнеры
Контакты

<< предыдущая | в начало | следующая >>



Работа с изображениями и библиотека GD : Манипулирование изображениями

imageCreate
Создание пустой картинки.

Синтаксис :
int imageCreate(int x, int y)

Создает пустую картинку размером x на y точек и возвращает ее идентификатор. После того, как картинка создана, вся работа с ней осуществляется именно через этот идентификатор, по аналогии с тем, как мы работаем с файлом через его дескриптор.

Пример:
Создание новой картинки при помощи GD и вывод ее в экран браузера:

<?php
header ("Content-type: image/png");
$im = @imagecreate (50, 100)
    or die ("Не удается открыть новую картинку!");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 233, 14, 91);
imagestring ($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng ($im);
?>

imageCreateFromPng
Создание рисунка из файла PNG.

Синтаксис :
int imageCreateFromPng(string filename)
Эта функция загружают изображения из файла PNG в память и возвращает его идентификатор. Как и после вызова imageCreate(), дальнейшая работа с картинкой возможна только через этот идентификатор. При загрузке с диска изображение распаковывается и храниться в память уже в неупакованном формате, для того чтобы можно было максимально быстро производить с ним различные операции, такие как масштабирование, рисование линий и т.д.

Пример:
Пример нахождения ошибки при открытии графического файла.

function LoadPNG ($imgname) {
  $im = @imagecreatefrompng ($imgname); /* Attempt to open */
  if (!$im) { /* See if it failed */
    $im  = imagecreate (150, 30); /* Create a blank image */
    $bgc = imagecolorallocate ($im, 255, 255, 255);
    $tc  = imagecolorallocate ($im, 0, 0, 0);
    imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
    /* Output an errmsg */
    imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
  }
  return $im;
}

imageCreateFromJpeg
Создание рисунка из файла JPEG.

Синтаксис :
int imageCreateFromJpeg(string filename)
Эта функция загружают изображения из файла в память и возвращают его идентификатор. Как и после вызова imageCreate(), дальнейшая работа с картинкой возможна только через этот идентификатор. При загрузке с диска изображение распаковывается и храниться в память уже в неупакованном формате, для того чтобы можно было максимально быстро производить с ним различные операции, такие как масштабирование, рисование линий и т.д.


imageCreateFromGif
Создание рисунка из файла GIF.

Синтаксис :
int imageCreateFromGif(string filename)
Эта функция загружают изображения из файла в память и возвращают его идентификатор. Как и после вызова imageCreate(), дальнейшая работа с картинкой возможна только через этот идентификатор. При загрузке с диска изображение распаковывается и храниться в память уже в неупакованном формате, для того чтобы можно было максимально быстро производить с ним различные операции, такие как масштабирование, рисование линий и т.д.

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


imagePng
Функция выводит изображение в PNG-формате в любой браузер или в файл.

Синтаксис:
int imagePng(int im [, string filename])

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

Разумеется, вначале изображение должно быть загружено или создано при помощи функции imageCreate(), т.е. мы должны знать его идентификатор im.

Если аргумент filename опущен, то сжатые данные в соответствующем формате выводятся прямо в стандартный выходной поток, т.е. в браузер. Нужный заголовок Content-type при этом не выводится, ввиду чего нужно выводить его вручную при помощи Header().
Фактически, вы должны вызвать одну из трех команд, в зависимости от типа изображения:

Header("Content-type: image/png") для PNG.

Пример:
Пример использования функции imagepng():

<?php
$im = imagecreatefrompng ("test.png");
Header("Content-type: image/png")
imagepng ($im);
?>

imageJpeg
Отсылка рисунка JPEG браузеру или сохранение его в файле.

Синтаксис:
int imageJPEG(int im [, string filename [, int quality]])

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

Разумеется, вначале изображение должно быть загружено или создано при помощи функции imageCreate(), т.е. мы должны знать его идентификатор im.

Если аргумент filename опущен, то сжатые данные в соответствующем формате выводятся прямо в стандартный выходной поток, т.е. в браузер. Нужный заголовок Content-type при этом не выводится, ввиду чего нужно выводить его вручную при помощи Header().
Фактически, вы должны вызвать одну из трех команд, в зависимости от типа изображения:

Header("Content-type: image/jpeg") для Jpeg

Третий необязательный параметр quality задает качество изображения (от 0 до 100).

<?php
$im=imageCreateFromJPEG("img/file.jpg");
Header("Content-type: image/jpeg");
imageJPEG($im,"",30);
?>

image2WBMP
Вывод изображения в браузер или файл.

Синтаксис :
int image2WBMP( resource image [, string filename [, int threshold]])

Функция выводит изображение, заданное дескриптором image, в браузер, либо в файл, имя которого задано необязательным параметром filename.
Если изображение выводится в браузер, необходимо задать его тип WBMP как image/vnd.wap.wbmp функцией Header():

<?php
$file = "php.png";
$image = imagecreatefrompng($file);

header("Content-type: " . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // Вывод wbmp-картинки в браузер
?>
Функция image2WBMP() доступна PHP только если версия библиотеки GD 1.8 или ниже.

imageGif
Отсылка рисунка GIF браузеру или сохранение его в файле.

Синтаксис:
int imageGIF(int im [, string filename])

Функция сохраняют изображение, заданное своим идентификатором и находящееся в памяти, на диск, или же выводят его в браузер.

Разумеется, вначале изображение должно быть загружено или создано при помощи функции imageCreate(), т.е. мы должны знать его идентификатор im.

Если аргумент filename опущен, то сжатые данные в соответствующем формате выводятся прямо в стандартный выходной поток, т.е. в браузер. Нужный заголовок Content-type при этом не выводится, ввиду чего нужно выводить его вручную при помощи Header().
Фактически, вы должны вызвать одну из трех команд, в зависимости от типа изображения:

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()).



<< предыдущая | в начало | следующая >>






Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_gdmanipul.php on line 216

Warning: include(http://altcode.ru/include/banners.php) [function.include]: failed to open stream: no suitable wrapper could be found in /home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_gdmanipul.php on line 216

Warning: include() [function.include]: Failed opening 'http://altcode.ru/include/banners.php' for inclusion (include_path='.:') in /home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_gdmanipul.php on line 216