全站图片启用七牛图片瘦身 imageslim 服务

前几天迎来了一大波访问,进七牛后台一查,一天跑掉1.5GB 的图片流量。因为现在还用着七牛每月10GB 的免费流量额度,照这个趋势还是应该省着点,打算把全站的图片再压缩一下。

刚好七牛年初才推出了个“图片瘦身”服务,号称“体积大幅减少,肉眼画质不变”,蛮适合我现在的需求。详细了解后发现,分自动调用(收费)、手动折腾(免费)两种方式,但自动调用方式要求域名备案,没办法只能选手动的。

调用方法倒起很简单,在需要压缩的图片链接后面加上?imageslim参数就行,既然是全站压缩,最简便的办法就是给主题加个自动替换。

全站图片自动添加 imageslim 命令

在主题的 functions.php 文件末尾添加以下代码即可。

function imageslim() {
function rewrite_imgurl($html) {
/* 匹配你自己的七牛加速域名,注意正则的写法 */
$pattern = '/http:\/\/cdn\.qiniu\.com\/([^"\']*?)\.(jpg|png|jpeg|gif)/i';
/* 自动在图片链接后添加瘦身命令 */
$replacement = 'http://cdn.qiniu.com/$1.$2?imageslim';
$html = preg_replace($pattern, $replacement, $html);
return $html;
}
/* 排除后台,只在前端页面替换 */
if (!is_admin()) {
ob_start("rewrite_imgurl");
}
}
add_action('init', 'imageslim');

注意将代码中的域名替换成你自己的七牛加速域名,这样所有从七牛出来的图片都会自动启用瘦身服务。

像修改主题这种事情,以后碰上主题升级就非常费神,得找个不用动主题文件就能添加 PHP 代码的办法,于是就找到了。

自定义添加 PHP 代码插件 My Custom Functions

My Custom Functions | Github | Website

所以上面这段代码我并没有直接加到主题的 functions.php 里面,而是通过插件添加,还能单独控制启用/关闭,完全不用碰主题文件,折腾型博主必备。

实际的图片瘦身效果,就是上面的这张七牛后台截图,传说中的“肉眼画质不变”还是稍微夸大了一点。