+ Ответить в теме
Показано с 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_filename0766);
        }

    Стало:
    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_filename0766);
        }
        
    $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_filename0766);
        }
            
    $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