Webmaster общности: Predpriemach.com | SearchEngines.bg

    Основни функции за оразмеряване и копиране в 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!

    Оставете коментар