首先感谢看过这个问题的小伙伴! 其次说一下这个问题: 准备工作 准备一张图比如这张:图1,图片尺寸180X110,图片类型JPEG,图片大小24.38KB 准备一张待合并图:图2,图片尺寸47X23,图片类型PNG,图片大小1.91KB 预览: 开始测试 图片合并的原理:将一张图拷贝到另一张图的制定位置。作用:适用于图片添加水印。 $file = "src/dealimg.jpg"; $file_1 = "src/免费.png"; // 加载水印以及要加水印的图像 $stamp = imagecreatefrompng($file_1); $im = imagecreatefromjpeg($file); // 设置水印图像的外边距,并且获取水印图像的尺寸 $marge_right = 0; $marge_bottom = 0; $sx = imagesx($stamp); $sy = imagesy($stamp); // 利用图像的宽度和水印的外边距计算位置,并且将水印复制到图像上 imagecopy($im, $stamp, 0, 0, 0, 0, imagesx($stamp), imagesy($stamp)); // 输出图像并释放内存 header('Content-type: image/jpeg'); imagejpeg($im, "sssss.jpg", 100); // imagepng($im, "sssss.png"); imagedestroy($im); 注:上述代码参考自Php官方文档 GD库效果如下: 图片属性:图片尺寸180X110,图片类型JPEG,图片大小13.18KB图片缩小了,为什么呢?我们看看JPEG的百度百科,其中有这么一句: .jpeg/.jpg是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。 因为,图片保存成jpeg会失真,并被压缩。我们将处理后的13.18KB的图拿来接着处理,我们看一下效果:效果如下: 图片属性:图片尺寸180X110,图片类型JPEG,图片大小13.12KB因为用的同样的算法处理的图片,所以说,第一次处理的和第二次处理的图片大小一致。我们再看看原图保存为png会怎样? <?php /** * Created by PhpStorm. * User: amor * Date: 17-9-18 * Time: 上午11:26 */ $file = "src/sssss_1.jpg"; $file_1 = "src/免费.png"; // 加载水印以及要加水印的图像 $stamp = imagecreatefrompng($file_1); $im = imagecreatefromjpeg($file); // 设置水印图像的外边距,并且获取水印图像的尺寸 $marge_right = 0; $marge_bottom = 0; $sx = imagesx($stamp); $sy = imagesy($stamp); // 利用图像的宽度和水印的外边距计算位置,并且将水印复制到图像上 imagecopy($im, $stamp, 0, 0, 0, 0, imagesx($stamp), imagesy($stamp)); // 输出图像并释放内存 //header('Content-type: image/jpeg'); header('Content-type: image/png'); //imagejpeg($im, "sssss_2.jpg", 100); imagepng($im, "sssss.png"); imagedestroy($im); 预览: 图片属性:图片尺寸180X110,图片类型PNG,图片大小20.35KB最后,我们得出结论,图片压不压缩,失真与否,取决于图片保存的格式!
首先感谢看过这个问题的小伙伴!
其次说一下这个问题:
准备工作
预览:
开始测试
图片合并的原理:将一张图拷贝到另一张图的制定位置。作用:适用于图片添加水印。
注:上述代码参考自Php官方文档 GD库
效果如下:
图片属性:图片尺寸180X110,图片类型JPEG,图片大小13.18KB
图片缩小了,为什么呢?
我们看看JPEG的百度百科,其中有这么一句:
因为,图片保存成jpeg会失真,并被压缩。
我们将处理后的13.18KB的图拿来接着处理,我们看一下效果:
效果如下:
图片属性:图片尺寸180X110,图片类型JPEG,图片大小13.12KB
因为用的同样的算法处理的图片,所以说,第一次处理的和第二次处理的图片大小一致。
我们再看看原图保存为png会怎样?
预览:
图片属性:图片尺寸180X110,图片类型PNG,图片大小20.35KB
最后,我们得出结论,图片压不压缩,失真与否,取决于图片保存的格式!