Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Наложение водяного знака на оригинал


Recommended Posts

Добрый день, при увеличении картинок в товаре использую оригинал изображения, для наложения водяного знака использую такой код 

if ($width == 980) { copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);}
            else
            {
            if ($width > 90 || $height > 90) {  
               $image->watermark(DIR_IMAGE . 'watermark.png', 'bottomright');
            }
                $image->resize($width, $height);
                $image->save(DIR_IMAGE . $new_image);
            }} else {
                copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);
            }
        }

Подскажите как сделать чтобы он накладывался и на оригинал фото?

Спасибо.

Надіслати
Поділитися на інших сайтах


у Вас при увлечении фото стоит, чтобы отображался оригинал? насколько мне известно этот модуль накладывает только на кеш, а оригинал изображения не трогает

Надіслати
Поділитися на інших сайтах


у Вас при увлечении фото стоит, чтобы отображался оригинал? насколько мне известно этот модуль накладывает только на кеш, а оригинал изображения не трогает

 

при увеличении тоже показывается с вотермарком...так как на сайте все покупатели видят фото только из кэша...

у меня стоит запрет на просмотр оригинальных фото... только кэшированные...  :-)

Надіслати
Поділитися на інших сайтах


при увеличении тоже показывается с вотермарком...так как на сайте все покупатели видят фото только из кэша...

у меня стоит запрет на просмотр оригинальных фото... только кэшированные...  :-)

а я в самом начале и написал, что у меня фото не из кеша, а увеличивается оригинал, поэтому  и создал тему чтобы помогли , чтобы на оригинал фото накладывался водяной знак

Надіслати
Поділитися на інших сайтах


а я в самом начале и написал, что у меня фото не из кеша, а увеличивается оригинал, поэтому  и создал тему чтобы помогли , чтобы на оригинал фото накладывался водяной знак

Для начала напишите, каким образом выводите оригинал, а отсюда уже можно будет оттолкнуться.

Надіслати
Поділитися на інших сайтах


Для начала напишите, каким образом выводите оригинал, а отсюда уже можно будет оттолкнуться.

создался вот такой файл xml

<modification>
<id>Original_image_size</id>
<version>1.0.0</version>
<vqmver>2.1.5</vqmver>
<author>***</author>
<file name="catalog/controller/product/product.php">
<operation>
<search position="replace">
<![CDATA[$this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));]]>
</search>
<add>
<![CDATA[ $this->data['popup'] = 'image/' . $product_info['image'];]]>
</add>
</operation>
</file>
 
<file name="catalog/controller/product/product.php">
<operation>
<search position="replace">
<![CDATA['popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')),]]>
</search>
<add>
<![CDATA[ 'popup' => 'image/' . $result['image'],]]>
</add>
</operation>
</file>
</modification>
Надіслати
Поділитися на інших сайтах


if ($width > 90 || $height > 90) {

$image->watermark(DIR_IMAGE . 'watermark.png', 'center');

}

из модели catalog\model\tool\image.php

 

То что вы выложите сверху, это добавляется в функцию resize.

Надіслати
Поділитися на інших сайтах


Наложение водяного знака идёт за счёт создание копии изображения(кеша), с нужными размерами, и уже там идёт наложение водяного знака.

То есть, вы хотите, чтобы во всех файлах в папке /image/ наложились водяные знаки?

Надіслати
Поділитися на інших сайтах


Наложение водяного знака идёт за счёт создание копии изображения(кеша), с нужными размерами, и уже там идёт наложение водяного знака.

То есть, вы хотите, чтобы во всех файлах в папке /image/ наложились водяные знаки?

Да это и хочу

Надіслати
Поділитися на інших сайтах


Да это и хочу

А что мешает использовать функцию resize (или продублировать её) без пропорций изображения (без заданных размеров) но с наложением водяного знака?

Надіслати
Поділитися на інших сайтах


А что мешает использовать функцию resize (или продублировать её) без пропорций изображения (без заданных размеров) но с наложением водяного знака?

Мешает то что, не понимаю как сделать это.... как убрать эти пропорции чтобы был оригинальный размер фото

Надіслати
Поділитися на інших сайтах


В файле catalog\model\tool\image.php

После функции resize вставляем:

    public function resizewatter($filename, $width, $height, $type = "") {
        if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) {
            return;
        }
        
        $info = pathinfo($filename);
        
        $extension = $info['extension'];
        
        $old_image = $filename;
        $new_image = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . $width . 'x' . $height . $type .'.' . $extension;
        
        if (!file_exists(DIR_IMAGE . $new_image) || (filemtime(DIR_IMAGE . $old_image) > filemtime(DIR_IMAGE . $new_image))) {
            $path = '';
            
            $directories = explode('/', dirname(str_replace('../', '', $new_image)));
            
            foreach ($directories as $directory) {
                $path = $path . '/' . $directory;
                
                if (!file_exists(DIR_IMAGE . $path)) {
                    @mkdir(DIR_IMAGE . $path, 0777);
                }        
            }

            list($width_orig, $height_orig) = getimagesize(DIR_IMAGE . $old_image);

            if ($width_orig != $width || $height_orig != $height) {
                $image = new Image(DIR_IMAGE . $old_image);
                if ($width == 980) { copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);}
                else
                {
                    $image->watermark(DIR_IMAGE . 'watermark.png', 'bottomright');
                    $image->save(DIR_IMAGE . $new_image);
                }} else {
                    copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);
                }
        }
        
        if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
            return $this->config->get('config_ssl') . 'image/' . $new_image;
        } else {
            return $this->config->get('config_url') . 'image/' . $new_image;
        }    
    }

В файле vqmod, который в посте.

 

Найти:

$this->data['popup'] = 'image/' . $product_info['image'];

Заменить на:

$this->data['popup'] = $this->model_tool_image->resizewatter($product_info['image'], '', '');

Найти:

'popup' => 'popup' => 'image/' . $result['image']

Заменить на:

'popup' => $this->model_tool_image->resizewatter($product_info['image'], '', '')

PS. Писал с телефона, возможны ошибки/раскладка ну и прочие мелочи..

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.