+ Ответить в теме
Показано с 1 по 2 из 2
  1. #1
    ViArts Man Samodelkin - очень-очень хороший человек Samodelkin - очень-очень хороший человек Samodelkin - очень-очень хороший человек Samodelkin - очень-очень хороший человек Samodelkin - очень-очень хороший человек
    Регистрация
    26.06.2009
    Адрес
    Воронеж
    Сообщений
    322
    Сказали 'Спасибо' за это сообщение. :
    6 за это сообщение
    14 Всего
    Загрузки
    1
    Закачек
    0
    Вес репутации
    17

    По умолчанию Наложение водного знака при загрузке изображений

    В скрипте есть возможность наложения водного знака при выводе изображения то есть, на лету. На мой взгляд это не всегда оправдано да и создает дополнительную нагрузку на сервер тем более если у нас он виртуальный.
    Для того что-бы наложить водный знак при загрузке изображения нужно модифицировать файл: admin_upload.php

    в него добавим следующий код:
    PHP код:
    $watermark = get_setting_value($settings, "watermark_super_image", 0);
    if (
    $watermark) {
        
    $watermark_image = get_setting_value($settings, "watermark_image", "");
        
    $watermark_image_pos = get_setting_value($settings, "watermark_image_pos", "");
        
    $watermark_image_pct = get_setting_value($settings, "watermark_image_pct", "");
                  
        
    $watermark_text = get_setting_value($settings, "watermark_text", "");
        
    $watermark_text_size = get_setting_value($settings, "watermark_text_size", "");
        
    $watermark_text_color = get_setting_value($settings, "watermark_text_color", "");
        
    $watermark_text_angle = get_setting_value($settings, "watermark_text_angle", "");
        
    $watermark_text_pos = get_setting_value($settings, "watermark_text_pos", "");
        
    $watermark_text_pct = get_setting_value($settings, "watermark_text_pct", "");
        
    image_watermark($images_root.$super_dir_suffix.$uploaded_filename, '../'.$watermark_image, $watermark_image_pos, $watermark_image_pct, $watermark_text, $watermark_text_size, $watermark_text_color, $watermark_text_angle, $watermark_text_pos, $watermark_text_pct, $images_root.$super_dir_suffix.$uploaded_filename);
    } 
    Он достаточно простой, в основном получаем настройки и в самом низу вызываем функцию наложения image_watermark. Она стандартная от Viart так что не пришлось писать другую.
    Добавляем код где-то за строкой 344 файла admin_upload.php после создания уменьшенных изображений.
    Было:
    PHP код:
    if ($resize_super_image) {
        
    $super_width = get_setting_value($settings, "super_image_max_width", 1024);
        
    $super_height = get_setting_value($settings, "super_image_max_height", 768);
        if (@
    resize($uploaded_filename, $filepath, $images_root.$super_dir_suffix, $super_width, $super_height, $errors))    {
            @
    chmod($images_root.$super_dir_suffix.$uploaded_filename, 0766);
        }
    } 
    Стало:
    PHP код:
    if ($resize_super_image) {
        
    $super_width = get_setting_value($settings, "super_image_max_width", 1024);
        
    $super_height = get_setting_value($settings, "super_image_max_height", 768);
        if (@
    resize($uploaded_filename, $filepath, $images_root.$super_dir_suffix, $super_width, $super_height, $errors))    {
            @
    chmod($images_root.$super_dir_suffix.$uploaded_filename, 0766);
        }
        
    $watermark = get_setting_value($settings, "watermark_super_image", 0);
        if (
    $watermark) {
            
    $watermark_image = get_setting_value($settings, "watermark_image", "");
            
    $watermark_image_pos = get_setting_value($settings, "watermark_image_pos", "");
            
    $watermark_image_pct = get_setting_value($settings, "watermark_image_pct", "");
                      
            
    $watermark_text = get_setting_value($settings, "watermark_text", "");
            
    $watermark_text_size = get_setting_value($settings, "watermark_text_size", "");
            
    $watermark_text_color = get_setting_value($settings, "watermark_text_color", "");
            
    $watermark_text_angle = get_setting_value($settings, "watermark_text_angle", "");
            
    $watermark_text_pos = get_setting_value($settings, "watermark_text_pos", "");
            
    $watermark_text_pct = get_setting_value($settings, "watermark_text_pct", "");
            
    image_watermark($images_root.$super_dir_suffix.$uploaded_filename, '../'.$watermark_image, $watermark_image_pos, $watermark_image_pct, $watermark_text, $watermark_text_size, $watermark_text_color, $watermark_text_angle, $watermark_text_pos, $watermark_text_pct, $images_root.$super_dir_suffix.$uploaded_filename);
        }
    } 
    Кстати я добавлял его только для оригинальных изображений, но по аналогии вы можете добавить и для наложения на другие изображения.
    Может не совсем корректно было накладывать изображение после его уменьшения т.к. если изображение не будет уменьшаться, то и водного знака мы не получим, но мне этого было достаточно.

    Кстати есть небольшая засада
    по коду:
    PHP код:
    $watermark = get_setting_value($settings, "watermark_super_image", 0); 
    Получает значение параметра "накладывать изображение или нет"
    и получается задваение, изображение накладывается при загрузке и при этом потом пытается наложить при выводе. Для исправления нужно убрать условие, тогда водяной знак будет накладываться всегда при загрузке.

    Или править блок вывода изображения в файле: block_product_details.php. Я остановился на постоянном наложении при загрузке.
    Код в итоге стал такой:
    PHP код:
    if ($resize_super_image) {
        
    $super_width = get_setting_value($settings, "super_image_max_width", 1024);
        
    $super_height = get_setting_value($settings, "super_image_max_height", 768);
        if (@
    resize($uploaded_filename, $filepath, $images_root.$super_dir_suffix, $super_width, $super_height, $errors))    {
            @
    chmod($images_root.$super_dir_suffix.$uploaded_filename, 0766);
        }
            
    $watermark_image = get_setting_value($settings, "watermark_image", "");
            
    $watermark_image_pos = get_setting_value($settings, "watermark_image_pos", "");
            
    $watermark_image_pct = get_setting_value($settings, "watermark_image_pct", "");
                      
            
    $watermark_text = get_setting_value($settings, "watermark_text", "");
            
    $watermark_text_size = get_setting_value($settings, "watermark_text_size", "");
            
    $watermark_text_color = get_setting_value($settings, "watermark_text_color", "");
            
    $watermark_text_angle = get_setting_value($settings, "watermark_text_angle", "");
            
    $watermark_text_pos = get_setting_value($settings, "watermark_text_pos", "");
            
    $watermark_text_pct = get_setting_value($settings, "watermark_text_pct", "");
            
    image_watermark($images_root.$super_dir_suffix.$uploaded_filename, '../'.$watermark_image, $watermark_image_pos, $watermark_image_pct, $watermark_text, $watermark_text_size, $watermark_text_color, $watermark_text_angle, $watermark_text_pos, $watermark_text_pct, $images_root.$super_dir_suffix.$uploaded_filename);

    } 
    Остается нюанс в том что водный знак будет накладываться только при уменьшении изображения.
    Последний раз редактировалось Samodelkin; 16.05.2011 в 09:04.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  2. Сказали спасибо:

    tusa888 (25.06.2011) , nemo (15.05.2011) , Subbota (13.05.2011) , Ches (13.05.2011) , newshop (13.05.2011) , Anny (13.05.2011)

  3. #2
    Новичок Илья на пути к лучшему
    Регистрация
    06.11.2010
    Адрес
    Челябинск
    Сообщений
    20
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    0 Всего
    Загрузки
    0
    Закачек
    0
    Вес репутации
    5

    По умолчанию Re: Наложение водного знака при загрузке изображений

    С какой версией магазина работает код?
    ICQ: 238 987 959
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо


 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Back to top