autoCropImage - PHP 图片自动缩放程序autoCropImage - PHP 图片自动缩放程序

生命不息,
折腾不止!

autoCropImage - PHP 图片自动缩放程序

autoCropImage - 图片自动缩放程序

将图片自动缩放成指定大小,减少图片体积,从而加快下载速度,降低下载时间和成本。

 

使用说明

URI 模式

  • http://localhost/images/pic.jpg_50x100.jpg
  • http://localhost/images/pic.jpg_50x100m2.jpg
  • http://localhost/images/pic.jpg_50x100v2014.jpg
  • http://localhost/images/pic.jpg_50x100m2v2014.jpg

QUERY 模式

  • http://localhost/images/pic.jpg?50x100
  • http://localhost/images/pic.jpg?50x100m2
  • http://localhost/images/pic.jpg?50x100v2014
  • http://localhost/images/pic.jpg?50x100m2v2014

使用说明

  • 方式一:50x100 缩放成 50x100 大小
  • 方式二:50x100m2 方式一并且使用mode 2
  • 方式三:50x100v2014 方式一并且指定缓存版本2014
  • 方式四:50x100m2v2014 方式一,使用mode 2并且指定缓存版本2014

缩放模式说明

  • mode 1 : 强制裁剪,生成图片严格按照需要,不足放大,超过裁剪,图片始终铺满。
  • mode 2 : 和1类似,但不足的时候 不放大 会产生补白,可以用png消除。
  • mode 3 : 只缩放,不裁剪,保留全部图片信息,会产生补白。
  • mode 4 : 只缩放,不裁剪,保留全部图片信息,此时的参数只是限制了生成的图片的最大宽高,不产生补白。
  • mode 5 : 生成的图比例严格按照需要的比例,宽和高不超过给定的参数。

 

下载

安装和测试

  • 将  autoCropImage/images/.htaccess  文件放在网站根目录
  • 存放缩略图目录权限修改为可写入
  • 使用浏览器访问 http://localhost/images/pic.jpg http://localhost/images/pic.jpg_50x100.jpg 当第二个地址看见缩略图即安装成功

配置

首次使用时建议修改默认配置,文件位于 autoCropImage/_config.php

/* 设置缩放图片目录 */
define('THUMB_DIR', ROOT_DIR . '/../thumb/%1$sx%2$s_mode%3$s/%5$s/%6$s'); // %1$s 宽, %2$s 高, %3$s 模式, %4$s 版本, %5$s 目录, %6$s 文件名

/* 默认缩放模式 */
define('DEFAULT_MODE', 3);

/* 默认版本 */
define('DEFAULT_VERSIONS', 1);

/* 默认图片目录
 * 例如:
 * define('IMAGES_DIR', 'images/');
 * 设置后将可以:
 * 1. 减少使用路径 http://localhost/images/pic.jpg_50x100.jpg > http://localhost/pic.jpg_50x100.jpg
 * 2. 隐藏原大小图片路径
 */
define('IMAGES_DIR', '');

/* header 缓存时长 */
define('HEADER_CACHE_TIME', '10 years');

为了防止受到攻击者遍历生成大量文件,正式上线时建议修改认证配置,文件位于 autoCropImage/_auth.php

// 本程序提供断宽高逻辑,防止遍历生成大量文件
// 可判断变量: $width $height $mode $versions

// 例子:
if ($width > 10000 OR $height > 10000) $autoCropImage->show_not_found();

相关链接

autoCropImage 开源项目 https://github.com/mingfunwong/autoCropImage

 

伪静态文件

Apache Rewrite:

RewriteEngine On

# autoCropImage 程序 URI 模式匹配规则
RewriteRule ^.*(?:gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)(?:_)([0-9]+)x([0-9]+)(?:m([1-5]))?(?:v([A-Za-z0-9_]*))?(?:.)?(?:gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)?$ autoCropImage/autoCropImage.php [L,QSA]
# autoCropImage 程序 QUERY 模式匹配规则
RewriteCond %{QUERY_STRING} ^([0-9]+)x([0-9]+)(?:m([1-5]))?(?:v([A-Za-z0-9_]*))?$
RewriteRule ^.*\.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$ autoCropImage/autoCropImage.php [L,QSA]

 

Nginx Rewrite:

	rewrite ^/.*(?:gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)(?:_)([0-9]+)x([0-9]+)(?:m([1-5]))?(?:v([A-Za-z0-9_]*))?(?:.)?(?:gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)?$ /autoCropImage/autoCropImage.php last;
if ($args ~ "^([0-9]+)x([0-9]+)(?:m([1-5]))?(?:v([A-Za-z0-9_]*))?$"){
	set $rule_1 1$rule_1;
}
if ($rule_1 = "1"){
	rewrite ^/.*\.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$ /autoCropImage/autoCropImage.php last;
}

 

 

 

Github地址(php版本):

项目地址:https://github.com/mingfunwong/autoCropImage

本地下载:autoCropImage-master.zip (30.09 KB) 下载日期:2020年11月10日 14点09分

 

Github地址(thinkphp5.1版本):

https://github.com/zjutsxj/autoCropImage

本地下载: 下载日期:2020年11月10日 14点09分

 

composer 安装(thinkphp5.1版本):

composer require zjutsxj/think-autocropimage

本地下载: 下载日期:2020年11月10日 14点09分

赞() 打赏
未经允许不得转载:我的博客 » autoCropImage - PHP 图片自动缩放程序
分享到: 更多 (0)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    这是评论测试

    DUX主题小秘7个月前 (09-17)回复
    • 飞歌导航东方红烦得很

      themebetter主题小秘3周前 (04-08)回复
  2. #2

    这是新的一条评论

    DUX主题小秘7个月前 (09-17)回复
  3. #3

    未来一年,中国的移动支付市场会是什么样?

    DUX主题小秘7个月前 (09-17)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

大前端WP主题 更专业 更方便

联系我们 联系我们