欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 中的图片压缩

程序员文章站 2022-04-18 20:00:27
...
现在我想压缩图片,比如说640x480 的图片 现在存储的时候是 600k 我想实现压缩成 640x 480 的480k 大小的图片 这个能实现吗? 如果这样压缩图片会不会损坏?具体要怎么做?急求?????


回复讨论(解决方案)

降低图片的像素就可以了,可能存在的问题就是图片的显示效果与原图的效果存在色差,存在疵点。

可以用gd库生成缩略图



图片压缩是一样的

?考: http://blog.csdn.net/fdipzone/article/details/9316385

不可以!
把 640x 480 600k 压缩成 640x 480 480k,那么去掉的 120k 必然带走了1/5 的图片数据,导致图片质量下降
除非你的原始图片是位图方式(BMP,TIFF)的,但是
gif 是无损压缩,但只有 256 种颜色(即会丢失色彩信息)
jpeg 是有损压缩,显然有损两字已经很好地说明问题了
png 虽是无损压缩,但若是 256色 的,显然是丢失了色彩信息,而真彩的又等于没压缩

降低quality试试。

我用PHP可以有三种方法:

1.

$im = imagecreatefromjpeg('3.jpg');	   imageinterlace($im, true);	   imagejpeg($im, './3.jpg');	   var_dump(imageinterlace($im, true));

这个可以将图片压缩2k(这是我的图片得到的结果)

2.
       $image = @imagecreatefromjpeg("9.jpg");        imagejpeg($image,'90.jpg',20); /*压缩等级0-100*/       imagedestroy ($image);

这个可以将图片压缩到90%。 imagejpeg($image,'90.jpg',0); //143k => 7k
当然这个图片就没有原来的清晰度了。所以用20可以压缩图片可以达到我想要的状态,不但能压缩到17k,用肉眼看和原图没有多大差别。
这是图9

3.php 的ImageMagick 扩展,这个没有具体试验能压缩到多少

不可以!
把 640x 480 600k 压缩成 640x 480 480k,那么去掉的 120k 必然带走了1/5 的图片数据,导致图片质量下降
除非你的原始图片是位图方式(BMP,TIFF)的,但是
gif 是无损压缩,但只有 256 种颜色(即会丢失色彩信息)
jpeg 是有损压缩,显然有损两字已经很好地说明问题了
png 虽是无损压缩,但若是 256色 的,显然是丢失了色彩信息,而真彩的又等于没压缩


我用两种方法基本实现了。麻烦斑斑给结个帖。

?考: http://blog.csdn.net/fdipzone/article/details/9316385


谢啦,这刚好是我没有实验的那种方法。

结贴是你自己的事情


不可以!
把 640x 480 600k 压缩成 640x 480 480k,那么去掉的 120k 必然带走了1/5 的图片数据,导致图片质量下降
除非你的原始图片是位图方式(BMP,TIFF)的,但是
gif 是无损压缩,但只有 256 种颜色(即会丢失色彩信息)
jpeg 是有损压缩,显然有损两字已经很好地说明问题了
png 虽是无损压缩,但若是 256色 的,显然是丢失了色彩信息,而真彩的又等于没压缩


我用两种方法基本实现了。麻烦斑斑给结个帖。