• Welcome to the Chevereto user community!

    Here users from all over the world gather around to learn the latest about Chevereto and contribute with ideas to improve the software.

    Please keep in mind:

    • 😌 This community is user driven. Be polite with other users.
    • 👉 Is required to purchase a Chevereto license to participate in this community (doesn't apply to Pre-sales).
    • 💸 Purchase a Pro Subscription to get access to active software support and faster ticket response times.

Watermark logo on thumbnails

Dramacafe

Chevereto Member
Hi,

I'm posting this thread as continuation of our last conversation in chevereto.com/community/threads/no-image-has-been-uploaded.3489

I asked for development where I can put a watermark logo on the thumbnails only without affecting the image itself.

One more question Rodolfo, normally, how long it takes for the images to be deleted?
 
To watermark the thumbs first turn on the watermar in the includes/config.php file:

PHP:
/**
* watermark_enable
* Enable (true) or disable (false) watermark image.
* default: false
*/
$config['watermark_enable'] = true; // Values: true | false

Then, go to includes/classes/class.upload.php and replace this:
PHP:
            if(!check_value($this->error)) {
             
                // Apply the watermark ?
                if(!is_animated_image($this->working) && conditional_config('watermark_enable') and chevereto_config('watermark_opacity')>0) {
 
                    switch($this->extension) {
                        case 'gif':
                            $src = imagecreatefromgif($this->working);
                        break;
                        case 'png':
                            $src = imagecreatefrompng($this->working);
                        break;
                        case 'jpg':
                            $src = imagecreatefromjpeg($this->working);
                        break;
                    }
                    $src_width = imagesx($src);
                    $src_height = imagesy($src);
                 
                    $watermark_src = imagecreatefrompng(__CHV_WATERMARK_FILE__);
                    $watermark_width = imagesx($watermark_src);
                    $watermark_height = imagesy($watermark_src);
 
                    // Calculate the position
                    switch(chevereto_config('watermark_x_position')) {
                        case 'left':
                            $watermark_x = chevereto_config('watermark_margin');
                        break;
                        case 'center':
                            $watermark_x = $src_width/2 - $watermark_width/2;
                        break;
                        case 'right':
                            $watermark_x = $src_width - $watermark_width - chevereto_config('watermark_margin');
                        break;
                    }
                    switch(chevereto_config('watermark_y_position')) {
                        case 'top':
                            $watermark_y = chevereto_config('watermark_margin');
                        break;
                        case 'center':
                            $watermark_y = $src_height/2 - $watermark_height/2;
                        break;
                        case 'bottom':
                            $watermark_y = $src_height - $watermark_height - chevereto_config('watermark_margin');
                        break;
                    }
                 
                    // Watermark has the same or greater size of the image ?
                    // --> Center the watermark
                    if($watermark_width == $src_width && $watermark_height == $src_height) {
                        $watermark_x = $src_width/2 - $watermark_width/2;
                        $watermark_y = $src_height/2 - $watermark_height/2;
                    }
                 
                    // Watermark is too big ?
                    // --> Fit the watermark on the image
                    if($watermark_width > $src_width || $watermark_height > $src_height) {
                        // Watermark is wider than the image
                        if($watermark_width > $src_width) {
                            $watermark_new_width  = $src_width;
                            $watermark_new_height = $src_width * $watermark_height / $watermark_width;
                            if($watermark_new_height > $src_height) {
                                $watermark_new_width  = $src_height * $watermark_width / $watermark_height;
                                $watermark_new_height = $src_height;
                            }
                        } else {
                            $watermark_new_width  = $src_height * $watermark_width / $watermark_height;
                            $watermark_new_height = $src_height;
                        }
                        $watermark_temp = $this->img_upload_path.'temp_watermark_'.generateRandomString(64).'.png';
                        $WatermarkResize = new ImageResize(__CHV_WATERMARK_FILE__, $watermark_temp, $watermark_new_width);
                        if(!check_value($WatermarkResize->error)) {
                            $watermark_width = $watermark_new_width;
                            $watermark_height = $watermark_new_height;
                            $watermark_src = imagecreatefrompng($watermark_temp);
                            $watermark_x = $src_width/2 - $watermark_width/2;
                            $watermark_y = $src_height/2 - $watermark_height/2;
                        }
                    }
                                     
                    // Apply and save the watermark
                    imagecopymerge_alpha($src, $watermark_src, $watermark_x, $watermark_y, 0, 0, $watermark_width, $watermark_height, chevereto_config('watermark_opacity'), $this->extension);
                 
                    switch($this->extension) {
                        case 'gif':
                            imagegif($src, $this->working);
                        break;
                        case 'png':
                            imagepng($src, $this->working);
                        break;
                        case 'jpg':
                            imagejpeg($src, $this->working, 96);
                        break;
                    }
                    imagedestroy($src);
                    @unlink($watermark_temp);
                }


With this:
PHP:
            if(!check_value($this->error)) {
             
                // Apply the watermark ?
                if(!is_animated_image($this->working) && conditional_config('watermark_enable') and chevereto_config('watermark_opacity')>0) {
 
                    switch($this->extension) {
                        case 'gif':
                            $src = imagecreatefromgif($thumb_filename);
                        break;
                        case 'png':
                            $src = imagecreatefrompng($thumb_filename);
                        break;
                        case 'jpg':
                            $src = imagecreatefromjpeg($thumb_filename);
                        break;
                    }
                    $src_width = imagesx($src);
                    $src_height = imagesy($src);
                 
                    $watermark_src = imagecreatefrompng(__CHV_WATERMARK_FILE__);
                    $watermark_width = imagesx($watermark_src);
                    $watermark_height = imagesy($watermark_src);
 
                    // Calculate the position
                    switch(chevereto_config('watermark_x_position')) {
                        case 'left':
                            $watermark_x = chevereto_config('watermark_margin');
                        break;
                        case 'center':
                            $watermark_x = $src_width/2 - $watermark_width/2;
                        break;
                        case 'right':
                            $watermark_x = $src_width - $watermark_width - chevereto_config('watermark_margin');
                        break;
                    }
                    switch(chevereto_config('watermark_y_position')) {
                        case 'top':
                            $watermark_y = chevereto_config('watermark_margin');
                        break;
                        case 'center':
                            $watermark_y = $src_height/2 - $watermark_height/2;
                        break;
                        case 'bottom':
                            $watermark_y = $src_height - $watermark_height - chevereto_config('watermark_margin');
                        break;
                    }
                 
                    // Watermark has the same or greater size of the image ?
                    // --> Center the watermark
                    if($watermark_width == $src_width && $watermark_height == $src_height) {
                        $watermark_x = $src_width/2 - $watermark_width/2;
                        $watermark_y = $src_height/2 - $watermark_height/2;
                    }
                 
                    // Watermark is too big ?
                    // --> Fit the watermark on the image
                    if($watermark_width > $src_width || $watermark_height > $src_height) {
                        // Watermark is wider than the image
                        if($watermark_width > $src_width) {
                            $watermark_new_width  = $src_width;
                            $watermark_new_height = $src_width * $watermark_height / $watermark_width;
                            if($watermark_new_height > $src_height) {
                                $watermark_new_width  = $src_height * $watermark_width / $watermark_height;
                                $watermark_new_height = $src_height;
                            }
                        } else {
                            $watermark_new_width  = $src_height * $watermark_width / $watermark_height;
                            $watermark_new_height = $src_height;
                        }
                        $watermark_temp = $this->img_upload_path.'temp_watermark_'.generateRandomString(64).'.png';
                        $WatermarkResize = new ImageResize(__CHV_WATERMARK_FILE__, $watermark_temp, $watermark_new_width);
                        if(!check_value($WatermarkResize->error)) {
                            $watermark_width = $watermark_new_width;
                            $watermark_height = $watermark_new_height;
                            $watermark_src = imagecreatefrompng($watermark_temp);
                            $watermark_x = $src_width/2 - $watermark_width/2;
                            $watermark_y = $src_height/2 - $watermark_height/2;
                        }
                    }
                                     
                    // Apply and save the watermark
                    imagecopymerge_alpha($src, $watermark_src, $watermark_x, $watermark_y, 0, 0, $watermark_width, $watermark_height, chevereto_config('watermark_opacity'), $this->extension);
                 
                    switch($this->extension) {
                        case 'gif':
                            imagegif($src, $thumb_filename);
                        break;
                        case 'png':
                            imagepng($src, $thumb_filename);
                        break;
                        case 'jpg':
                            imagejpeg($src, $thumb_filename, 96);
                        break;
                    }
                    imagedestroy($src);
                    @unlink($watermark_temp);
                }
 
Yeah I know that but what I meant generally if I didn't delete it how long does it usually take to be deleted automatically? Is there any time or bandwidth limit? And can we limit them if it is unlimited.
 
I've done everything you instructed but I got the "No image has been uploaded" error again. Seems something wrong with php code that you put here. It uploads normally as soon as I remove or reupload the old one.
 
You edit it wrong. Also I notice that you didn't correctly do the install. I've fix it all.
 
Yeah, I don't know perhaps you're right I don't know math I know karate :D I attached a screenshot, you see the logo that is in the left top corner? How do I change it? Because I changed every single logo of Cheverto but that one couldn't find it.

And thank you very much you've been a great help.
 

Attachments

  • Cheverto-15.JPG
    Cheverto-15.JPG
    18.3 KB · Views: 12
You should implement a config option that says, on watermark, thumb only or full images.. i want to use this but with all the updates, it will just be hassle.
 
Yeah, I really appreciate the efforts you made, Rodolfo. But I did not understand how that works, couldn't understand a thing from the thread that you posted about the top left logo. Well, I know I've been asking a lot lately but what do I do I'm not good at phps and web developments. So, I would be really appreciative if you'd change the top left logo for me :oops: Just need you to change to the following logo
http://img.dramacafe.tv/content/system/img/logo.png
 
Is CSS, you need to do CSS editing. Go to this file content/themes/Peafowl/style.css and change this:

Code:
        #shortURL #header h1 a {
            < all the code here >
            }

To this:
Code:
        #shortURL #header h1 a {
            display: block;
            width: 83px;
            height: 26px;
            text-indent: -999px;
            background-image: url(data:image/png;base64,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);
            }
 
Back
Top