当前位置:  软件>php软件

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

    来源:    发布时间:2014-12-25

    本文导语:  EvaCloudImage已经更名为EvaThumber,并且做了完全的重构,加入更多新功能 EvaCloudImage 是一个基于URL生成缩略图的轻量级PHP库,支持缩放/旋转/截取等多种缩略图生成方式,而仅仅需要通过简单更改图片的URL。 EvaCloudImage的源...

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

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

根据高度缩放:

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

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

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

按百分比缩放:

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

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

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

注意:

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

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

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

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

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

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

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

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

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

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

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

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

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

旋转

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

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

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

JPG图片压缩质量

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

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

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

下载

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

安装 1. 环境需求
  • PHP 版本大于 5.3.0
  • 以安装GD 2.0+
  • 服务器已经开启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的源代码,惟一做的是保留源代码中的作者信息。

    感谢

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


        
     
     

    您可能感兴趣的文章:

     
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java根据url抓取并生成缩略图的示例
  • php 根据url自动生成缩略图并处理高并发问题
  • php根据url自动生成缩略图(附源码)
  • java命名空间java.net类url的类成员方法: url定义及介绍
  • 请问各位高手,getImage(URL url)中的URL url参数是怎么用的?
  • java命名空间java.net类urlconnection的类成员方法: url定义及介绍
  • URL url=new URL(/tech-soft-php/"http_/156.66.212.15_8080/djs/servlet/DbServlet"/index.html);这句有什么错误?
  • java命名空间java.net类url的类成员方法: getdefaultport定义及介绍
  • 获取上一页面的URL和本页的URL的方法
  • java命名空间java.net类url的类成员方法: getprotocol定义及介绍
  • 如何防止没有权限的人由于知道url,直接输入url,来察看文件呢?
  • java命名空间java.net类url的类成员方法: samefile定义及介绍
  • 如何根据一个url得到其下url???
  • java命名空间javax.print类docflavor.url的类成员方法: gif定义及介绍
  • jquery 取url参数及在url后添加参数的例子
  • java命名空间javax.print类docflavor.url的类成员方法: postscript定义及介绍
  • 有谁会用linux里面的wget?有一个参数是-i 后面加上url地址文件,我不明白什么叫url地址文件,那位大侠告诉我?
  • java命名空间javax.print类docflavor.url的类成员方法: pdf定义及介绍
  • jquery获取url及url参数的方法
  • java命名空间javax.print类docflavor.url的类成员方法: jpeg定义及介绍
  • 各位高手:本人初学JDBC对各个数据连接时的URL的书写还很模糊,有谁可以提供以下各数据库的连接发,由其是URL的书写。
  • java命名空间javax.print类docflavor.url的类成员方法: png定义及介绍
  • 在配Samba的時候,在windows的網絡芳鄰里能看到電腦名稱,在url里輸入\加IP也能訪問,但是在網絡芳鄰里直接雙擊或是在URL里輸入\加電腦名
  • java命名空间java.net类url的类成员方法: touri定义及介绍
  • java解析出url请求的路径和参数键值对类(解析出url请求的路径,包括页面)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3