使用codeigniter图像水印库时,像素消失

时间:2013-04-23 11:33:20

标签: php codeigniter

我的任务是将照片叠加到报纸上,照片是一个人的照片,而这些照片就是报纸正面的照片。

我使用codeigniter图像库用照片为模板添加水印。它工作正常但是当它叠加时它会扭曲或移除照片中的一些像素

您可以在照片的左上方看到它 -

enter image description here

我也正在调整图像的大小为500像素,模板中的图像空间大约为1400像素

以下是我用于覆盖图片的代码

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

    }

2 个答案:

答案 0 :(得分:1)

由于没有答案,我最终使用了原生的php功能。

如果您希望将文件保存到服务器,则

imgpng有第二个参数。由于只需点击按钮即可打印,我只是提示浏览器下载

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

答案 1 :(得分:0)

我遇到了同样的问题。

问题出在PNG 24位图像上。 尝试使用 PNG 16位来避免此问题。

也许Gif图像也能正常工作(未经测试)。 Codeigniter图像库是一个很好的类。