php URL圖片資源傳參生成對應尺寸圖片

最近項目中需要上傳大圖,然後不同設備請求不同大小的圖片,之前有用過一個通過URL參數來獲取不同大小的圖片的接口感覺設計方式請不錯,於是就百度看看類似是如何實現的,找了幾天找個兩個功能類似的記錄下。

1、圖片服務器 imagemagick / zimg
2、php代碼 autoCropImage

結果部署imagemagick / zimg環境怎麼都安裝不成功最後放棄了以後有時間在研究。 這裏就簡單的使用autoCropImage

  • 首先web服務器需要 開啓 mod_rewrite
  • 其次.htaccess 文件添加 url路由 讓圖片資源跳轉autoCropImage.php處理
RewriteEngine on

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)?$ data/autoCropImage/autoCropImage.php [L,QSA]
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)$ data/autoCropImage/autoCropImage.php [L,QSA]
  • 創建thumb目錄用來放置生成的圖片 例如我的項目在/data/thumb/
/項目根目錄結構
----/data/
--------/upload/ 上傳在這裏的原圖圖片資源位置
--------/thumb/ 生成的對應尺寸圖片存放位置
--------/autoCroplmage/圖片處理類
------------/autoCropImage.php
------------/_auth.php 安全處理配置
------------/_config.php 配置文件
------------/ImageCrop.php 

使用
默認請求方式:
http://localhost/data/upload/20160724/57945fc63440a.png

獲取不同尺寸的請求方式:
http://localhost/data/upload/20160724/57945fc63440a.png_500x150m1v2014.png

===========================

URI 模式
http://localhost/data/upload/20160724/57945fc63440a.png_50x100.png
http://localhost/data/upload/20160724/57945fc63440a.png__50x100m2.png
http://localhost/data/upload/20160724/57945fc63440a.png__50x100v2014.png
http://localhost/data/upload/20160724/57945fc63440a.png__50x100m2v2014.png

QUERY 模式
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100m2
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100v2014
http://localhost/data/upload/20160724/57945fc63440a.png_?50x100m2v2014
使用說明

方式一:50x100 縮放成 50x100 大小
方式二:50x100m2 方式一併且使用mode 2
方式三:50x100v2014 方式一併且指定緩存版本2014
方式四:50x100m2v2014 方式一,使用mode 2並且指定緩存版本2014
縮放模式說明

mode 1 : 強制裁剪,生成圖片嚴格按照需要,不足放大,超過裁剪,圖片始終鋪滿。
mode 2 : 和1類似,但不足的時候 不放大 會產生補白,可以用png消除。
mode 3 : 只縮放,不裁剪,保留全部圖片信息,會產生補白。
mode 4 : 只縮放,不裁剪,保留全部圖片信息,此時的參數只是限制了生成的圖片的最大寬高,不產生補白。
mode 5 : 生成的圖比例嚴格按照需要的比例,寬和高不超過給定的參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章