$default = true; $src = infra_theme('*imager/noimage.png'); //header('HTTP/1.1 404 Not Found'); //return; } else { $src = $p['images'][0]['src']; } } } } $src = infra_tofs($src); $type = imager_type($src); if (!is_null($ignoremark)) { //Метку ignore может выставить только администратор //На файлы с такой меткой водяной знак никогда не ставится $info = imager_makeInfo($src); if ($ignoremark && $info['water']) { //Если файл был с водяным знаком $orig = $info['orig']; if ($orig) { $orig = infra_theme($orig); if ($orig) { //Если оригинальный файл найден $r = copy($orig, $src); //Востановили оригинал без удаления оригинала $info['water'] = false; if (!$r) { imager_writeInfo($src, $info); die('Не удалось востановить оригинал чтобы поставить метку ignore'); } $info['ignore'] = $ignoremark;
function imager_mark($src, $type) { $conf = infra_config(); if (!$conf['imager']['watermark']) { return; } if (!$type) { return; } if ($type == 'gif') { return; } //Проблема прозрачности $info =& imager_readInfo($src); if (@$info['ignore']) { return; } //В изображении указано что не нужно делать водяной знак на нём if (@$info['water']) { return; } //Если нужно повторно наложить водяной знак, для этого нужно удалить все старые знаки $water = infra_theme('*imager/mark.png'); if (!$water) { return; } //Добавляем водяной знак $orig = $info['orig']; if (!$orig) { $orig = $src; } elseif (!infra_theme($orig)) { return; } //Защита.. оригинал не найден.. значит старая версия водяной знак есть, //метке water нет. второй знак не нужен $fn = 'imagecreatefrom' . $type; $img = $fn($orig); $orig = infra_theme($orig); list($w, $h) = getimagesize($orig); $w = $w * 9 / 10; $h = $h * 9 / 10; $water = imager_scale($water, $w, $h); $temp = tmpfile(); fwrite($temp, $water); $meta = stream_get_meta_data($temp); $water = imagecreatefrompng($meta['uri']); $img = create_watermark($type, $img, $water, 100); //$img - картинка с водяным знаком $info = imager_makeInfo($src); //Сделали бэкап, или считали info у существующего файла, чтобы после изменений сохранить прошлые $fn = 'image' . $type; $fn($img, $src); //Подменили картинку на картинку с водяным знаком $info['water'] = true; imager_writeInfo($src, $info); return; }