Пример #1
0
     $info = imager_readInfo($src);
     if (@$info['water']) {
         $orig = infra_theme($info['orig']);
         if ($orig) {
             $src = $orig;
         } else {
             //die('Не найден оригинал');
         }
     }
 }
 //$src с водяной меткой если нужно
 if ($gray) {
     $src = imager_makeGray($src, $temp);
     //новый src уже на серую картинку
 }
 $data = imager_scale($src, $w, $h, $crop, $top);
 if (!$data) {
     die('Resize Error');
 }
 $br = infra_imager_browser();
 $name = preg_replace("/(.*\\/)*/", '', $isrc);
 $name = infra_toutf($name);
 if (!preg_match('/ff/', $br)) {
     $name = rawurlencode($name);
 }
 if (preg_match('/ie6/', $br)) {
     $name = preg_replace("/\\s/", '%20', $name);
 }
 if (!$type) {
     $type = 'image/jpeg';
 }
Пример #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;
}