Основни функции за оразмеряване и копиране в GD Library
Автор: adrian
Предишните три урока:
Създаване на изображение с 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);
?>С това приключва серията от уроци, която разглежда основните функции в GD Library!


