Основни функции за оразмеряване и копиране в GD Library
11-11-2009
Предишните три урока:
Създаване на изображение с GD Library
Цветове и текст в GD Library
Основни форми в GD Library

В този урок ще разгледаме функциите getimagesize(), imagesx(), imagesy(), imagecopy(), imagecopyresized() и imagecopymerge()
Ще започнем с getimagesize(), защото ще я ползваме много често когато оразмеряваме картинки.

getimagesize(image)
Стойност на параметъра:
image - стринг, оказващ пътя до даденото изображение.

Функцията връща масив със стойности:
индекс[0] - широчината на изображението
индекс[1] - височината на изображението
индекс[2] - число, оказващо номера на разширението. За gif - 1, jpeg - 2 и т.н
индекс[3] - височината и широчината на изображението в готов вид за ползване (width="xxx" height="xxx")
индекс[bits] - битовете на изображението
индекс[channels] - каналите на изображението
индекс[mime] - mime type на изображението. За jpeg - image/jpeg

За да можем да взимаме по-лесно всяка една от тези стойности, ще използваме list()

И сега кратък пример:

<?php
list($width, $height, $type, $html) = getimagesize("image.jpg");
$size = getimagesize("image.jpg");
echo("Широчина: ".$width.", височина: ".$height.", тип: ". $type.", html: ". $html.", bits: ".$size[bits].", channels: ".$size[channels].", mime: ".$size[mime]);
?>


В повечето случаи ще е необходимо само width и height.
Понеже не може с list(); да се вземат последните 3 стойности от getimagesize(), съм използвал:
$size = getimagesize("image.jpg");, така в $size[0] е широчината, $size[1] - височината, $size[2] - типа, $size[3] - html кодът, $size['bits'] - битовете, $size['channels'] - каналите, $size['mime'] - mimе типът на изображението.


Следващата функция е:
imagesx(img_resource)
Стойност на параметъра:
img_resource - тук се пише променливата, в която пазим ресурса на изображението, създадено с една от функциите, описани в първия урок

ВАЖНО: Тази функция може да се ползва само с ресурс на изображението, а не със самото изображение.

Функцията връща широчината на изображението.

Кратък пример:

<?php
$image = imagecreatefromjpeg("image.jpg");
$width = imagesx($image);
echo $width."<br />";
$image = imagecreatetruecolor(300, 200);
$width = imagesx($image);
echo $width; //Това ще изкара 300
?>


Следващата функция е:
imagesy(img_resource)
Стойност на параметъра:
img_resource - тук се пише променливата, в която пазим ресурса на изображението, създадено с една от функциите, описани в първия урок

ВАЖНО: Тази функция може да се ползва само с ресурс на изображението, а не със самото изображение.

Функцията връща височината на изображението.

Кратък пример:

<?php
$image = imagecreatefromjpeg("images/image.jpg");
$height = imagesy($image);
echo $height."<br />";
$image = imagecreatetruecolor(300, 200);
$height = imagesy($image);
echo $height; //Това ще изкара 200
?>


Това бяха функциите, които взимат размерите на дадено изображение. Сега нека разгледаме по-интересната част от урока, а именно функциите за променяне на размерите на дадено изображение и функциите за копиране.
Първата функция, която ще разгледаме е:

imageCopy(dest_resource, src_resource, dest_x, dest_y, src_x, src_y, src_width, src_height)
Тази функция се използва за копиране на цяло изображение в ново или за копиране на част от изображението.
Стойностите на осемте параметъра:
dest_resource - тук се пише променливата, в която пазим ресурса на изображението дестинация, създадено с една от функциите, описани в първия урок
src_resource - тук се пише променливата, в която пазим ресурса на изображението, което ще копираме (източник), създадено с една от функциите, описани в първия урок
dest_x - от кой пиксел по абсицата върху дестинацията да се нарисува изображението (обикновено е 0)
dest_y - от кой пиксел по ординатата върху дестинацията да се нарисува изображението (обикновено е 0)
src_x - от кой пиксел по абсцисата да се вземе селекцията на изображението източник
src_y - от кой пиксел по ординатата да се вземе селекцията на изображението източник
src_width - колко широка да бъде селекцията на изображението източник
src_height - колко висока да бъде селекцията на изображението източник

Функцията връща новото изображение в променливата dest_resource.



Следващата функция е:
imageCopyResized(dest_resource, src_resource, dest_x, dest_y, src_x, src_y, dest_width, dest_height, src_width, src_height)
Тази функция служи за смаляване на дадено изображение. Използва се най-често за направата на thumbs.
Стойностите на десетте параметъра:
dest_resource - тук се пише променливата, в която пазим ресурса на изображението дестинация, създадено с една от функциите, описани в първия урок
src_resource - тук се пише променливата, в която пазим ресурса на изображението, което ще смаляваме (източник), създадено с една от функциите, описани в първия урок
dest_x - от кой пиксел по абсцисата върху дестинацията да се нарисува изображението (обикновено е 0)
dest_y - от кой пиксел по ординатата върху дестинацията да се нарисува изображението (обикновено е 0)
src_x - от кой пиксел по абсцисата да се вземе селекцията на изображението източник
src_y - от кой пиксел по ординатата да се вземе селекцията на изображението източник
dest_width - колко да бъде новата широчина на изображението
dest_height - колко да бъде новата височина на изображението
src_width - каква част от изображението източник да вземем (широчина)
src_height - каква част от изображението източник да вземем (височина)

Функцията връща смаленото изображение в променливата dest_resource



Последната функция, която ще видим в този урок е:
imageCopyMerge(dest_resource, src_resource, dest_x, dest_y, src_x, src_y, src_width, src_height, alpha)
Тази функция се използва да свърже две изображения в едно. Обикновено се използва за воден знак.
Стойностите на десетте параметъра:
dest_resource - тук се пише променливата, в която пазим ресурса на изображението, което ще ни служи за фон (дестинация)
src_resource - тук се пише променливата, в която пазим ресурса на изображението, което ще слагаме отгоре (източник)
dest_x - от кой пиксел по абсцисата върху дестинацията да започне рисуването на източника
dest_y - от кой пиксел по ординатата върху дестинацията да започне рисуването на източника
src_x - от кой пиксел по абсцисата да се вземе селекцията на изображението източник
src_y - от кой пиксел по ординатата да се вземе селекцията на изображението източник
src_width - широчината, която да се вземе от източника
src_height - височината, която да се вземе от източника
alpha - прозрачността на източника. 0 е напълно прозрачен.

Функцията връща свързани двете изображения в променливата dest_resource.


Примерен код от видео урока:

<?php
header("Content-type: image/jpeg");
list($width, $height) = getimagesize("images/approved.png");
$dest = imagecreatefromjpeg("images/megan.jpg");
$src = imagecreatefrompng("images/approved.png");

imagecopymerge($dest, $src, 0, 0, 0, 0, $width, $height, 100) ;

imagejpeg($dest);
imagedestroy($dest);
?>



Файлове за сваляне
Файлове за сваляне - линк 1
Файлове за сваляне - линк 2
Файлове за сваляне - линк 3

С това приключва серията от уроци, която разглежда основните функции в GD Library!





/ Трябва да сте регистриран за да напишете коментар /