在为图像添加水印后丢失质量和尺寸

时间:2013-05-12 23:20:09

标签: php image

我正在开发一个我最初没有创建/开发的网站。

用户可以上传图片,当他们这样做时,会有一个功能会使用水印创建该图像的副本。

但带有水印的副本质量低,而且其尺寸远小于原始图像

Without watermark

With watermark

function watermark( $path ){
    $watermark = imagecreatefrompng('files/watermark.png');
    $wmsize = getimagesize('files/watermark.png');
    $image = imagecreatefromjpeg($path);
    $size  = getimagesize($path);

    $dest_x = (8);
    $dest_y =  ($size[1] - 35  );

    imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $wmsize[0], $wmsize[1]);

    ob_start(); 
    imagejpeg($image); 
    $img2 = ob_get_contents(); 
    ob_end_clean(); 
    imagedestroy($image);
    return $img2 ;
}

1 个答案:

答案 0 :(得分:1)

由于JPEG压缩,图像质量下降。

每次将图像保存为JPEG时,都会降低其质量,因为JPEG使用有损压缩。您可以通过将压缩质量设置为100%来最大限度地减少损失,但如果您想执行无损压缩,则无法使用JPEG,您必须寻找其他图像格式,例如: TIFF。