Перейти к содержанию
miharrr

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

Рекомендуемые сообщения

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

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>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

функцию watermark выложите из модели catalog\model\tool\image.php(или в vqmod, откуда она изменения вносит)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

if ($width > 90 || $height > 90) {
$image->watermark(DIR_IMAGE . 'watermark.png', 'center');
}

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

 

вот каким методом http://zano.ru/view.php?id=1012

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.