Beispiel #1
0
                     die('Не удалось востановить оригинал чтобы поставить метку ignore');
                 }
                 $info['ignore'] = $ignoremark;
             } else {
                 imager_writeInfo($src, $info);
                 die('На файле установлен водяной знак. Оригинальный файл не найден. Метку установить неудалось');
             }
         } else {
             imager_writeInfo($src, $info);
             die('Водяной знак есть а оригинал не указан. исключение.');
         }
     } else {
         //Водяного знака небыло
         $info['ignore'] = $ignoremark;
     }
     imager_writeInfo($src, $info);
 }
 if ($type && $mark && !$default) {
     //Это не значит что нужно делать бэкап
     imager_mark($src, $type);
     //Накладываем водяной знак
 }
 /*$info=imager_readInfo($src);
 	if($info['ignore']){
 		$orig=$info['orig'];
 	}*/
 $limark = false;
 //Не делать водяной знак если площать меньше 150x150
 if ($w && $h) {
     $limark = $conf['imager']['waterlim'] > $w * $h;
 } elseif ($w || $h) {
Beispiel #2
0
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;
}