日志未经声明,均为AlloVince原创。版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可。
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
EvaCloudImage只需要更改影子图片的URL即可实现缩放,只需要图片的文件名末尾加入以逗号分隔的参数即可:
根据宽度缩放:
'w'参数是Width的缩写,可以控制图片按宽度缩放。下面的URL会生成一张300px宽的图片:
http:
根据高度缩放:
同理通过更改'h'(Height),根据高度缩放图片:
http:
按百分比缩放:
当w或h为小数时,图片会按照百分比缩放,比如w_0.4会将图片缩放至原尺寸的40%:
http:
注意:
- 当w与h既有整数又有小数时,以整数为准
- 当w与h同时为小数时,以w为准
图片剪裁
使用'c'参数(Crop)可以剪裁图片,比如c_100会从图片的中心位置截取出一张100px的缩略图。
http:
'g'参数(gravity)代表剪裁范围或高度,需要配合c参数一起使用。比如下例,代表从图片中心位置剪裁一张100px*200px的缩略图。
http:
如果想要指定剪裁的精确位置,需要用'x'和'y'参数指定起点坐标,比如下面的例子,代表以距离图片左边80px,上边10px为起点,剪裁一张100px*200px的图片。
http:
图片的剪裁与缩放可以混用,EvaCloudImage始终会先进行剪裁,然后再对剪裁后的图片缩放。
http:
填充模式
在实际使用中,我们经常会遇到这样的场景:需要截取并缩放图片以适应网页布局,此时我们可以使用剪裁中的填充模式,在填充模式下,需要指定剪裁参数为c_fill,同时设定填充的宽度与高度,然后可以得到一张完全吻合设定尺寸,同时经过缩放与剪裁处理的图片。
http:
在填充模式下还可以设定剪裁范围,允许的剪裁范围包括'top'(从上方), 'bottom'(从下方), 'left'(从左), 'right'(从右)。
http:
旋转
旋转参数为'r' (rotate) ,传递一个数字作为图片旋转的角度,比如让图片按照逆时针旋转90度:
http:
JPG图片压缩质量
通过'q'(quality)可以指定jpg图片的压缩质量,默认为100:
http:
下载
下载 最新版本的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 使用了以下的开源技术:
许可证
EvaCloudImage 是 EvaEngine项目的一个前端组件,基于New BSD License发布,简单说,你可以将EvaCloudImage用与任何商业或非商业项目中,可以自由更改EvaCloudImage的源代码,惟一做的是保留源代码中的作者信息。
感谢
实例图片来自 Рыбачка
更新
分享到:
相关推荐
本DEMO "无刷新上传--可生成缩略图--demo.zip" 恰好涵盖了这个领域的几个关键知识点,包括无刷新上传、PHP上传类的使用、远程上传以及生成缩略图。 首先,无刷新上传主要依赖于AJAX(Asynchronous JavaScript and ...
在本文中,我们将深入探讨如何基于Springmvc实现图片上传及生成缩略图的功能。Springmvc是Spring框架的一个重要模块,用于构建MVC模式的Web应用,它提供了强大的数据绑定、模型映射、视图渲染等功能,是Java开发中的...
"java 图片生成缩略图" Java 图片生成缩略图是Java程序开发中一个常见的需求,通过将图片以缩略图形式展示,可以提高用户体验和网站性能。在本文中,我们将介绍使用Java生成缩略图的方法。 缩略图生成方法 在 ...
PDF生成缩略图是将PDF文档中的页面转换成小尺寸的图像表示,通常用于预览、索引或在文件管理器中快速查看PDF内容。在IT领域,这涉及到PDF处理和图像处理技术。以下是一些关于如何在C#中生成PDF缩略图的关键知识点: ...
在ASP.NET开发中,生成图片的缩略图是一项常见的需求,尤其在网站中展示大量图片时,为了提高页面加载速度和用户体验,通常需要对原始图片进行尺寸调整,生成适合网页显示的缩略图。本教程将详细介绍如何在ASP.NET...
使用GD库生成缩略图的核心函数是`imagecreatetruecolor()`,它创建一个新的真彩色图像,然后用`imagecopyresampled()`将源图像缩放并复制到新图像上,以实现比例缩放。 ```php // 加载源图像 $source = ...
本篇文章将基于提供的代码片段详细讲解如何使用Java来实现上传图片并自动生成缩略图的功能。 #### 核心知识点概述 1. **读取与获取文件路径**:利用`HttpServletRequest`对象获取服务器上的文件存储路径。 2. **...
网页缩略图生成技术是一种常见的Web开发功能,它允许用户通过输入网址、设定目标宽度和高度,快速获取网站页面的预览图片。这种技术在许多应用场景中非常实用,例如社交媒体分享、搜索引擎结果展示、网站目录索引等...
在IT行业中,生成基于URL的缩略图、水印图和二维码图是常见的图像处理需求。这些功能广泛应用于网站开发、社交媒体分享、数据分析等多个场景。接下来,我们将详细探讨如何实现这些功能。 首先,让我们从“缩略图”...
在IT领域,多图片上传、判断图片像素以及生成缩略图是常见的图像处理技术,尤其在网站开发和移动应用设计中极为重要。这些功能能够优化用户体验,减少服务器存储空间,并加速网页加载速度。下面我们将详细探讨这三个...
使用GD库生成缩略图的基本步骤包括打开源图片、创建目标图片、设置缩放比例、复制和调整图像、然后保存结果。以下是一个简单的示例代码: ```php $src = '4.jpg'; // 源图片路径 $dst = 'small_4.jpg'; // 缩略...
综上所述,实现PHP根据文章标题生成缩略图并居中展示的功能涉及到图像处理、文本转图像、尺寸调整、颜色处理等多个技术层面,需要对PHP的GD库或其他图像处理扩展有深入理解。通过合理的代码结构和优化,可以创建出既...
例如,可以使用缓存机制,当原图首次生成缩略图后,将缩略图存储起来,后续请求直接返回缓存的缩略图,避免重复计算。 在实际应用中,一个PHP自动缩略图类或者函数通常会封装这些功能,提供简单的接口供开发者调用...
在PHP开发中,生成缩略图是一项常见的任务,特别是在处理用户上传的图片或者构建图像处理应用时。这个“PHP生成缩略图的类库”提供了一种高效且灵活的方式来创建不同类型的缩略图,包括扭曲型、按比例缩放、最小裁剪...
在IT行业中,生成缩略图是一项常见的任务,特别是在图像处理、网页设计以及各种应用程序中。缩略图的主要目的是为了快速预览大图像或一组图像,节省用户的时间和带宽。本压缩包提供了一个批量生成缩略图工具的源代码...
在Linux环境中,生成Word文件的缩略图通常涉及到两个关键组件:ImageMagick和Imagick(PHP扩展)。以下是对这两个组件以及如何使用它们来创建缩略图的详细解释。 一、ImageMagick ImageMagick是一个开源的跨平台...
H5网站经微信转发时,解决分享微信好友和微信朋友圈时无缩略图的问题,以此学会微信开发,JS-SDK配置问题,包括全部内容和注意事项
在本文中,我们将深入探讨如何使用PHP生成图片缩略图,重点介绍一个实用的PHP类`resizeimage`,以及在实现这个功能时需要的GD2图形库。PHP是一种流行的服务器端脚本语言,广泛用于网页开发,而生成图片缩略图是常见...
当这两者结合时,我们可以用PHP通过FFmpeg API来实现对视频的高级操作,如视频转换、截图以及生成缩略图。在这个场景中,提供的压缩包包含了一个PHP类,专门用于利用FFmpeg进行这些任务。 首先,我们需要理解FFmpeg...