EvaCloudImage:基于URL生成缩略图的轻量级PHP库

作者:AlloVince(微博:@Allo ,博客:AVNPC)本文由 AlloVince 投稿于伯乐在线,也欢迎其他朋友投稿。提示:投稿时记得留下微博账号哦 ~

EvaCloudImage 是一个基于URL生成缩略图的轻量级PHP库,支持缩放/旋转/截取等多种缩略图生成方式,而仅仅需要通过简单更改图片的URL。

EvaCloudImage is a light-weight & opensource url based image transformation php library. See English version document.

EvaCloudImage的源代码存放于 Github,完全开源,欢迎 Fork 或 关注我

EvaCloudImage的功能包括:

影子模式

很多时候我们不希望暴露原图片的地址,此时可以通过EvaCloudImage自动生成原图片的影子图片,保护原图片URL不被泄露,比如

●原图片地址为 : http://evacloudimage.avnpc.com/upload/demo.jpg

●影子图片地址为 : http://evacloudimage.avnpc.com/thumb/demo.jpg,在网站中只需要公布影子图片即可

假如原图片位于多级的树形目录下,影子图片也会保持与原图片同样的目录结构,从原切换到影子只需要更改域名或者根目录。

EvaCloudImage demo

(样例原图)

 

图片缩放

这里是原图:

EvaCloudImage只需要更改影子图片的URL即可实现缩放,只需要图片的文件名末尾加入以逗号分隔的参数即可:

根据宽度缩放:

w‘参数是Width的缩写,可以控制图片按宽度缩放。下面的URL会生成一张300px宽的图片:

EvaCloudImage Resized Image

根据高度缩放:

同理通过更改’h‘(Height),根据高度缩放图片:

EvaCloudImage Resized Image

按百分比缩放:

当w或h为小数时,图片会按照百分比缩放,比如w_0.4会将图片缩放至原尺寸的40%:

EvaCloudImage Resized Image

注意:

●当w与h既有整数又有小数时,以整数为准

●当w与h同时为小数时,以w为准

 

图片剪裁

使用’c‘参数(Crop)可以剪裁图片,比如c_100会从图片的中心位置截取出一张100px的缩略图。

EvaCloudImage Resized Image

g‘参数(gravity)代表剪裁范围或高度,需要配合c参数一起使用。比如下例,代表从图片中心位置剪裁一张100px*200px的缩略图。

EvaCloudImage Resized Image

如果想要指定剪裁的精确位置,需要用’x’和’y’参数指定起点坐标,比如下面的例子,代表以距离图片左边80px,上边10px为起点,剪裁一张100px*200px的图片。

EvaCloudImage Resized Image

图片的剪裁与缩放可以混用,EvaCloudImage始终会先进行剪裁,然后再对剪裁后的图片缩放。

EvaCloudImage Resized Image

旋转

旋转参数为’r‘ (rotate) ,传递一个数字作为图片旋转的角度,比如让图片按照逆时针旋转90度:

EvaCloudImage Resized Image

 

JPG图片压缩质量

通过’q‘(quality)可以指定jpg图片的压缩质量,默认为100:

EvaCloudImage Resized Image

 

下载

下载 最新版本的EvaCloudImage,解压即可使用。

 

安装

1. 环境需求

●PHP 版本大于 5.3.0

●以安装GD 2.0+

●服务器已经开启Url Re-write模块

 

2. 对安装目录开启Url Re-write

Apache设置:

如果服务器为Apache并且已经开启mod_rewrite模块,则无需任何设置,重写规则已经写入.htaccess文件。

Nginx

请参考以下配置调整路径

3. 配置文件

编辑源代码中的config.inc.php文件:

 

相关技术

EvaCloudImage 使用了以下的开源技术:

●PHP Thumb : 好用的缩略图生成库;

●Cloudinary : API设计参考了著名云服务Cloudinary;

 

许可证

EvaCloudImage 是 EvaEngine项目的一个前端组件,基于New BSD License发布,简单说,你可以将EvaCloudImage用与任何商业或非商业项目中,可以自由更改EvaCloudImage的源代码,惟一做的是保留源代码中的作者信息。

 

感谢

实例图片来自 Рыбачка

 

作者:AlloVince(微博:@Allo ,博客:AVNPC

 

本文由 AlloVince 投稿于伯乐在线,也欢迎其他朋友投稿。提示:投稿时记得留下微博账号哦 ~

【如需转载,请标注并保留原文链接、译文链接和译者等信息,谢谢合作!】

 

1 收藏 2 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部