• Welcome to the Chevereto User Community!

    Here, users from all over the world come together to learn, share, and collaborate on everything related to Chevereto. It's a place to exchange ideas, ask questions, and help improve the software.

    Please keep in mind:

    • This community is user-driven. Always be polite and respectful to others.
    • Support development by purchasing a Chevereto license, which also gives you priority support.
    • Go further by joining the Community Subscription for even faster response times and to help sustain this space

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 😀 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 😳 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