压缩上传后的图片,节省空间和流量

以前我都没有怎么考虑过这个问题。今天突然想起网站的优化问题,于是有了此文。
很多时候,博客中的图片只是为了说明一些问题,而并不需要质量特别高。
因此,为什么不在图片上传时就对图片进行压缩优化处理呢?这样既可以减少对服务器空间的占用,也可以加快页面的加载速度。
对于WP的话,实现这个处理是非常简单的,只需要HOOK下即可。不过,我目前没有用WP。
所以,这里只给出通用的demo代码,有时间再写插件吧。

JPEG 压缩:

1
2
3
4
5
6
<?php
$filename="myimage.jpg";
$img = imagecreatefromjpeg($filename);
header("Content-Type: image/jpeg");
imagejpeg($img, $filename, 82);
?>

jpeg质量值80-90之间时,能够保证比较高的质量,同时,文件大小有比较大的减少幅度。


png压缩,根据网上测试,原图体积是225k,在不同的等级压缩下结果如下:

1
2
3
4
5
6
7
8
9
10
imagepng($img,null,0); --> Size = 225K
imagepng($img,null,1); --> Size = 85.9K
imagepng($img,null,2); --> Size = 83.7K
imagepng($img,null,3); --> Size = 80.9K
imagepng($img,null,4); --> Size = 74.6K
imagepng($img,null,5); --> Size = 73.8K
imagepng($img,null,6); --> Size = 73K
imagepng($img,null,7); --> Size = 72.4K
imagepng($img,null,8); --> Size = 71K
imagepng($img,null,9); --> Size = 70.6K

一般采用2等级比较合适,图片没有失真,但体积减少了30%,达到优化的目的了。

更多
12 Responses Post a comment
  1. 泡沫

    @荒野无灯
    打算学习一些网页设计,但不知道从哪里下手,大哥,给点提示吧

  2. 不能吧

    不會用。我在上傳圖片前都是用Imagine另存一下,一般都能減掉40左右的體積了。

  3. 子痕

    上传之前先处理一下~
    不过确实有许多需要的人~

  4. 潜行者m

    等wordpress的插件,荒大哥努力啊,最近想做个图片有关的wordpress博客

  5. Always.Life

    一样用的都是外部图库,我也不太考虑压缩品质的问题

  6. 晓伍

    如果在wp中,具体应该如何应用?请指教,嘿嘿

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS