PHP將圖片自動縮放成指定大小:autoCropImage

jopen 10年前發布 | 29K 次閱讀 圖形/圖像處理 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

下載

安裝和測試

  1. autoCropImage/images/.htaccess 文件放在網站根目錄
  2. 存放縮略圖目錄權限修改為可寫入
  3. 使用瀏覽器訪問 http://localhost/images/pic.jpghttp://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();

項目主頁:http://www.baiduhome.net/lib/view/home/1393492081177

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!