Jump to content
Sign in to follow this  
miharrr

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

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);
            }
        }

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

Спасибо.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

купите модуль вотермарка... проблем меньше... :-)

а проблема вашего водного знака - ресайз изображения надо дописывать

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

кхе.... у меня на все фото накладывается вотермарк

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

создался вот такой файл 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>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

}

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Да это и хочу

Share this post


Link to post
Share on other sites

Да это и хочу

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

В файле 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. Писал с телефона, возможны ошибки/раскладка ну и прочие мелочи..

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.