Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pixels disappearing when using codeigniter image watermark llibrary

I have been tasked with overlaying a photo on to a newspaper-esque image where the photo is of a person and they are meant to be the photo on the front of a newspaper.

I used codeigniter image library to watermark the template with the photo. It works fine but it distorts or removes some of the pixels in the photo when its overlayed

You can see it in the top left of the photo here-

enter image description here

I am also resizing the image up as its 500 px and the space for the image in the template is around 1400px

Here is the code i am using to overlay the image

private function overlay($template, $source_image)
    {
        echo $template;
        // $config = array();
        $config['source_image'] = $template;
        $config['image_library'] = 'gd2';
        $config['wm_type'] = 'overlay';
        $config['wm_overlay_path'] = $source_image;
        $config['wm_vrt_alignment'] = 'top';
        $config['wm_hor_alignment'] = 'left';
        $config['wm_hor_offset'] = '18px';
        $config['wm_vrt_offset'] = '843px';
        $config['quality'] = '100%';
        $this->image_lib->initialize($config);
        $result = $this->image_lib->watermark();


        if($result){
            return $result;
        }
        else
        {
            echo $this->image_lib->display_errors();
            return false;
        }

    }
like image 505
Chris Mccabe Avatar asked Jun 03 '26 09:06

Chris Mccabe


1 Answers

Since there was no answer i ended up using native php functions which worked.

imgpng has a 2nd parameter if you wish to saved the file to your server instead. Since they were being printed on a click of the button i just prompted a browser download

private function overlay2($template, $source_image)
{



    $src  = imagecreatefromjpeg($source_image);
    $dest = imagecreatefrompng($template);

    imagecopymerge($dest,$src, 90, 910, 0, 0, 1511, 1075, 100); //have to play with these numbers for it to work for you, etc.



    header('Content-Disposition: Attachment;filename=newspaper.png'); 
    header('Content-type: image/png'); 

    imagepng($dest);

    imagedestroy($dest);
    imagedestroy($src);
}
like image 66
Chris Mccabe Avatar answered Jun 05 '26 21:06

Chris Mccabe



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!