Создавайте миниатюры изображений с водяными знаками на лету в PHP - PullRequest
0 голосов
/ 27 июля 2010

Я ищу класс PHP (решение) для создания миниатюр изображений с водяными знаками на лету. Есть идеи?

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Я успешно использовал этот код для добавления текста в изображение (миниатюру)

(обратите внимание, что вам потребуется предоставить шрифт)

function createImage($in_filename, $out_filename, $width, $height)
{
    $src_img = ImageCreateFromJpeg($in_filename);

    $old_x = ImageSX($src_img);
    $old_y = ImageSY($src_img);
    $dst_img = ImageCreateTrueColor($width, $height);
    ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $width, $height, $old_x, $old_y);

    addWatermark($dst_img);

    ImageJpeg($dst_img, $out_filename, 80);

    ImageDestroy($dst_img);
    ImageDestroy($src_img);
}

function addWatermark($image)
{
    $text = "watermark text";

    $font = realpath($_SERVER["DOCUMENT_ROOT"] . "/code/COURBD.TTF"); // case sensitive
    if ($font == false) return;

    $fontSize = 11;
    $borderOffset = 4;

    $dimensions = ImageTtfBBox($fontSize, 0, $font, $text . "@");
    $lineWidth = ($dimensions[2] - $dimensions[0]);

    $textX = (ImageSx($image) - $lineWidth) / 2;
    $textY = $borderOffset - $dimensions[7];

    $white = ImageColorAllocate($image, 240, 240, 240);
    ImageTtfText($image, $fontSize, 0, $textX, $textY, $white, $font, $text);
}

Обратная связь приветствуется.

0 голосов
/ 27 июля 2010

Вы можете сделать это, используя функцию imagecopyresampled(). Вот простое и понятное руководство по добавлению водяных знаков в эскизы. Также вы можете использовать функцию imagettftext(), чтобы использовать шрифты в качестве водяного знака

Ссылка на учебник: http://www.phpjabbers.com/phpexample.php?eid=20

...