Возможно ли наложить watermark на уже загруженные фотографии?

#
Возможно ли наложить watermark на уже загруженные фотографии?
Возможно ли наложить watermark на уже загруженные фотографии?
Контент менеджер все залил, а потом решили наложить watermark )
#
Re: Возможно ли наложить watermark на уже загруженные фотографии?
xelaxela13 писал(а):
Возможно ли наложить watermark на уже загруженные фотографии?

На уровне админки автоматом нет такой возможности уже на загруженные картинки наложить водяной знак.
Можно написать PHP скрипт которая проходить по записям на которые надо наложить watermark.
Скрипт проходит по выделенным записям и накладывает на уже загруженные картинки знак watermark.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Возможно ли наложить watermark на уже загруженные фотографии?
Спасибо, хотя бы так попробую.
#
Re: Возможно ли наложить watermark на уже загруженные фотографии?
Написал скрипт!
Запускаю через cron , соответственно положил его в папку cron, назвал setwatermark.php  
function setWatermark($stamp, $image)
{
    // Загрузка штампа и фото, для которого применяется водяной знак
    $file = $image;
    header("Content-type: image/png";
    $stamp = imagecreatefrompng($stamp);
    $image = imagecreatefromjpeg($image);
    imagealphablending($image, true);
    imagealphablending($stamp, true);
    imagesavealpha($image, true);
    imagesavealpha($stamp, true);
// получение высоты/ширины штампа
    $sx = imagesx($stamp);
    $sy = imagesy($stamp);
// накладываю только на картинки больше 350px
    if (imagesx($image) > 350 || imagesy($image) > 350) {
//накладываю посередине
        imagecopy($image, $stamp, imagesx($image) - (imagesx($image)/2+$sx/2), imagesy($image) - (imagesy($image)/2+$sy/2), 0, 0, imagesx($stamp), imagesy($stamp));
        imagejpeg($image,$file);
    }
// Вывод и освобождение памяти
    imagedestroy($image);
    imagedestroy($stamp);

}


// $path - путь к директории
// $pattern - шаблон поиска
// $flags - константа для функции glob()
// $depth - глубина вложенности, != 0 без ограничений
function getAllFiles($path, $pattern = '*', $flags = GLOB_NOSORT, $depth = 0)
{
    $matches = [];
    $folders = array(rtrim($path, DIRECTORY_SEPARATOR));

    while ($folder = array_shift($folders)) {
        $matches = array_merge($matches, glob($folder . DIRECTORY_SEPARATOR . $pattern, $flags));
        if ($depth != 0) {
            $moreFolders = glob($folder . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR);
            $folders = array_merge($folders, $moreFolders);
        }
    }
    return $matches;
}
$path = '../upload/shop_3'; // папка с которой начинаем искать
$tree = getAllFiles($path, "*", GLOB_NOSORT, 1);
$files = [];
foreach ($tree as $item) {
    $ext = pathinfo($item, PATHINFO_EXTENSION);
    if (is_file($item) and $ext == 'jpg' {
        $files[] = $item;
    }
}

$stamp = 'watermark.png'; // путь к watermark, я положил в папку cron, там же где и скрипт
foreach ($files as $file) {
    setWatermark($stamp, $file);
}

Один раз запустил, все гуд! сменил начальную папку на shop_4 и тд.
#
Re: Возможно ли наложить watermark на уже загруженные фотографии?
У кого стоит водяной знак, у вас фотографии(картинки) у товара, все одного размера?
Столкнулся с проблемой если у товара размер картинки 500*500, и 1000*1000, то водяной знак везде одинакого размера, никак нельзя автоматом подгонять соотношения водяного знака?
Авторизация