2014-11-04 81 views
1

我试图找出最好的方式来降低JPEG图像的质量在网页中这样http://vimeo.com/3750507每次用户访问页面时都会降低jpg图像质量?

是否有保存和重新保存在较低的质量则显示的服务器端方法每次页面送达时都有图像?

在此先感谢。

+2

是的。 GD或ImageMagick。 PHP支持两者。 – ceejayoz 2014-11-04 14:40:58

+0

如果您是以每个用户为基础进行操作,那么您可能需要使用Cookie,因此您可以增加cookie中的访问次数并使用它来计算JPEG品质因数。 – 2014-11-04 14:57:14

+0

GD默认打开,ImageMagick可能未安装在主机上。对于那个特定的问题,你应该使用GD – 2014-11-04 14:58:01

回答

3

下面的脚本会从99开始,在每次页面加载时将原始图像降低1'质量点'。这不是很健壮,但应该清楚地展示这个概念。

警告:这将取代原始图像!如果原件很重要,请使用副本!

session_start(); 
if (empty($_SESSION['quality'])) $_SESSION['quality'] = 99; 

$file = 'degrade.jpg'; 

imagejpeg(imagecreatefromjpeg($file), $file, $_SESSION['quality']); 

$_SESSION['quality']--; 

header('Content-type: image/jpeg'); 
echo file_get_contents($file); 

在第一页加载:

first run

第十页面加载:

tenth run

一个100页载:

one hundredth run

+1

+1准确地反映我的想法。 – 2014-11-06 09:10:26

相关问题