PHP

Водяной знак на PHP+GD

Собственно, совсем недавно была завершена некоторая работа - она была связана с программированием конвейера сборки большого числа изображений из отдельных картинок "конструктора". Для этого, само собой, пришлось накладывать полупрозрачные слои. При теоретических изысканиях данного вопроса - я обнаружил интересную особенность - при запросе "Водяной знак на PHP + GD" в сети нет нормальной, практической информации по этому поводу. Вас сначала погружают в дебри теоретических изысканий, вместо того, чтобы дать самодокументированный код. Я решил пойти иначе. Внизу - функция обеспечивающая наложение водяного знака на изображение. Из недостатков - то, что она работает только с изображениями формата PNG. Впрочем, программисту это исправить не проблема.
function watermark($_source_path, $_watermark_path, $_file='')
{
    /* Проверка - подключена ли библиотека GD - если её нет, вам необходимо либо самому подключить эту библиотеку
    * (В файле php.ini, секция extensions, необходимо прописать либо раскомментировать строку:
    *   extension=php_gd2.dll - в windows. */
    if (!extension_loaded('gd'))
    {
        return false;
    }
 
    if (!empty($_source_path) && !empty($_watermark_path))
    {
        $i_source    = imagecreatefrompng($_source_path);
        $i_watermark = imagecreatefrompng($_watermark_path);
        $result = imagecreatetruecolor(imagesx($i_source), imagesy($i_source));
 
        /* Координаты 0,0,0,0 - задают координаты соединения изображений.
        *  Поигравшись с ними можно изменить положение водяного знака (да и исходного изображения)
        */
        imagecopy($result, $i_source, 0, 0, 0, 0, imagesx($i_source), imagesy($i_source));
        imagecopy($result, $i_watermark, 0, 0, 0, 0, imagesx($i_watermark), imagesy($i_watermark));
 
        imagedestroy($i_source);
        imagedestroy($i_watermark);
 
        if (!empty($_file))
        {
            imagepng($result, $_file, 4);
        }
        else
        {
            return $result;
        }
    }
}
Теги:
Водяной знак
Добавлено: 08 Мая 2018 17:05:03 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...