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

码农软件 · 软件分类 · 图形/图像处理 · 2019-09-07 18:12:03

软件介绍

EvaCloudImage已经更名为EvaThumber,并且做了完全的重构,加入更多新功能


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

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

EvaCloudImage的功能包括:

影子模式

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

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

图片缩放

这里是原图:

http://evacloudimage.avnpc.com/upload/demo.jpg

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

根据宽度缩放:

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

http://evacloudimage.avnpc.com/thumb/demo,w_300.jpg

EvaCloudImage Resized Image

根据高度缩放:

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

http://evacloudimage.avnpc.com/thumb/demo,h_150.jpg

EvaCloudImage Resized Image

按百分比缩放:

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

http://evacloudimage.avnpc.com/thumb/demo,w_0.4.jpg

EvaCloudImage Resized Image

注意:

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

图片剪裁

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

http://evacloudimage.avnpc.com/thumb/demo,c_100.jpg

EvaCloudImage Resized Image

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

http://evacloudimage.avnpc.com/thumb/demo,c_200,g_100.jpg

EvaCloudImage Resized Image

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

http://evacloudimage.avnpc.com/thumb/demo,c_100,g_200,x_80,y_10.jpg

EvaCloudImage Resized Image

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

http://evacloudimage.avnpc.com/thumb/demo,c_100,g_200,w_50.jpg

EvaCloudImage Resized Image

旋转

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

http://evacloudimage.avnpc.com/thumb/demo,h_200,r_90.jpg

EvaCloudImage Resized Image

JPG图片压缩质量

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

http://evacloudimage.avnpc.com/thumb/demo,h_200,q_10.jpg

EvaCloudImage Resized Image

下载

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

安装

1. 环境需求

  1. PHP 版本大于 5.3.0
  2. 以安装GD 2.0+
  3. 服务器已经开启Url Re-write模块

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

Apache设置:

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

Nginx

请参考以下配置调整路径

server {
        listen   80;
        server_name  evacloudimage.avnpc.com;
        location / {
                root  /usr/www/EvaCloudImage/;
                index index.php index.html index.htm;
                if (!-e $request_filename){
                   rewrite ^/(.*)$ /index.php?$1& last;
                }
        }
        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /usr/www/EvaCloudImage/$fastcgi_script_name;
        }
}

3. 配置文件

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

array(
    'libPath' => __DIR__ . '/lib',  //依赖库的存放路径,一般无需更改
    'sourceRootPath' => __DIR__ . '/upload',  //原图片的存放路径,需要读取权限
    'thumbFileRootPath' => __DIR__ . '/thumb', //缩略图的存放路径,需要读写权限
    'thumbUrlRootPath' => __DIR__, //缩略域名绑定的根目录
    'saveImage' => false,  //如果开启,所有缩略图会自动保存,在正式环境推荐打开。
);

相关技术

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

  • PHP Thumb : 好用的缩略图生成库;
  • Cloudinary : API设计参考了著名云服务Cloudinary;

许可证

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

感谢

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

本文地址:https://codercto.com/soft/d/14093.html

Introduction to Linear Optimization

Introduction to Linear Optimization

Dimitris Bertsimas、John N. Tsitsiklis / Athena Scientific / 1997-02-01 / USD 89.00

"The true merit of this book, however, lies in its pedagogical qualities which are so impressive..." "Throughout the book, the authors make serious efforts to give geometric and intuitive explanations......一起来看看 《Introduction to Linear Optimization》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码