PHP將圖片自動縮放成指定大小:autoCropImage
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 : 生成的圖比例嚴格按照需要的比例,寬和高不超過給定的參數。
服務器環境要求
PHP 5.2+
Apache mod_rewrite
下載
- 直接下載: https://github.com/mingfunwong/autoCropImage/archive/master.zip
- Git: git clone git://github.com/mingfunwong/autoCropImage.git
安裝和測試
- 將
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();
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!