Nginx的 http_image_filter_module 模組使用說明
Nginx圖片處理原理
這裡需要用到 nginx的 http_image_filter_module 模組,這個模組可以很方便的實現圖片縮放功能,只是預設的情況下並不會安裝,需要自己編譯安裝才能行。編譯的時候./configure 增加 –with-http_image_filter_module 編譯安裝即可
Nginx圖片處理的優缺點
優點
- 操作簡單。通過簡單配置,省去了後端裁剪程式的複雜性。
- 實時裁剪。可以實時訪問線上裁剪圖片。
- 靈活性強。後端程式裁剪圖片時需要知道裁剪圖片的尺寸和質量,使用nginx裁剪可以實時裁剪任意尺寸的圖片。
- 不佔用硬碟空間。
缺點
消耗CPU和記憶體,訪問量大的時候就會給伺服器帶來很大的負擔。(可以通過使用Nginx快取和快取伺服器來解決)
功能不是很強大,支援的處理圖片型別只包括JPEG, GIF, PNG, or WebP
Nginx圖片處理模組指令使用
image_filter (重要)
設定要在影像上執行的轉換型別
Syntax: | image_filter off; |
---|---|
image_filter test; | |
image_filter size; | |
image_filter rotate 90/180/270; | |
image_filter resize width height; | |
image_filter crop width height; | |
Default: | image_filter off; |
Context: | location |
test
確保響應圖片是JPEG、GIF,WEBP或PNG格式,否則返回415錯誤碼。
size
outputs information about images in a JSON format, e.g.:
{ "img" : { "width": 100, "height": 100, "type": "gif" } }
In case of an error, the output is as follows:
{}
以 json 格式返回原圖的尺寸和型別
rotate
逆時針旋轉指定角度,只能指定這三個角度。引數值可以包含變數,這個模式可以單獨使用也可以和resize、crop變換同時使用。
resize width height
按比例對影像進行縮放,可以只指定一個尺寸,另一個尺寸用“-”。如果遇到錯誤,伺服器返回415錯誤碼。引數值可以包含變數。當與rotate引數一同使用時,旋轉操作發生在縮放之後。圖片會以長的一邊為標準,然後等比縮放。
crop width height
按比例裁剪圖片,可以只指定一個尺寸,另一個尺寸用“-”。如果遇到錯誤,伺服器返回415錯誤碼。引數值可以包含變數。當與rotate引數一同使用時,旋轉操作發生在裁剪之前。圖片會以長的一邊為標準,然後等比縮放,然後裁剪掉多餘的部分。
image_filter_buffer
設定用於讀取影像的緩衝區的最大大小
Syntax: | image_filter_buffer size; |
---|---|
Default: | image_filter_buffer 1M; |
Context: | http, server, location |
設定讀取圖片的最大緩衝區大小。當超過緩衝區大小時,返回 error 415 (Unsupported Media Type).
image_filter_interlace
如果啟用,最終影像將隔行掃描
Syntax: | image_filter_interlace on / off; |
---|---|
Default: | image_filter_interlace off; |
Context: | http, server, location |
如果開啟此功能,最終的影像是交錯的。對於JPEG,最終圖片是“漸進式JPEG”格式。圖片一般是線性載入,設定後則變為交替載入圖片。漸進式jpeg效果參見:http://www.zhangxinxu.com/wordpress/2013/01/progressive-jpeg-image-and-so-on/
image_filter_jpeg_quality
設定轉換JPEG影像的質量
Syntax: | image_filter_jpeg_quality quality; |
---|---|
Default: | image_filter_jpeg_quality 75; |
Context: | http, server, location |
設定轉為JPEG影像的質量。接受的值從1到100。較小的值意味著低質的圖片質量和更少的資料傳輸量。最大建議的值是95。引數可以包含變數。
image_filter_sharpen
通過設定銳化度,增加最終影像的清晰度。
Syntax: | image_filter_sharpen percent; |
---|---|
Default: | image_filter_sharpen 0; |
Context: | http, server, location |
增加最終圖片的銳度。這個百分比可以超過100。0值禁用此功能。引數可以包含變數。
image_filter_transparency
定義是否透明度時應保留轉換GIF影像或PNG影像的調色盤中指定的顏色。
Syntax: | image_filter_transparency on/off; |
---|---|
Default: | image_filter_transparency on; |
Context: | http, server, location |
決定在轉換GIF或PNG圖片帶有調色盤定義的顏色時,透明是否會保留。丟失透明度可以是圖片得到更好的質量。PNG的Alpha通道的透明總是會保留。
image_filter_webp_quality
設定轉化WebP影像所需的質量
Syntax: | image_filter_webp_quality quality; |
---|---|
Default: | image_filter_webp_quality 80; |
Context: | http, server, location |
設定轉為webp影像的質量。
This directive appeared in version 1.11.6.
侷限性
Nginx 的圖片處理模組,暫時沒有看到官方釋出的能夠給圖片加水印功能的模組,在github上看到有人寫了些這樣的擴充套件功能,參見 https://github.com/3078825/ngx_image_thumb
Nginx 的實時性和訪問的方便性上,GraphicsMagick 是無法比擬的,但是 GraphicsMagick 對圖片的處理的功能要比nginx強大很多,比如nginx不能將圖片旋轉任意角度,不能在圖片上加水印,處理圖片型別有限等,相對nginx,GraphicsMagick 更適合對圖片的非同步處理。
參考文獻
相關文章
- Nginx安裝http_image_filter_module圖片裁剪模組NginxHTTPFilter
- Nginx的配置檔案說明Nginx
- Nginx的gzip配置引數說明Nginx
- Hyperion模組分類說明
- pearadmin前端框架中 http模組如何使用說明前端框架HTTP
- nginx.conf的完整配置說明Nginx
- Nginx負載均衡配置說明Nginx負載
- [Nginx] - nginx 基本配置與引數說明(轉)Nginx
- Apache Kafka各Api模組說明ApacheKafkaAPI
- 使用說明
- nginx 詳解 – 詳細配置說明Nginx
- nginx 詳解 - 詳細配置說明Nginx
- Nginx配置檔案詳細說明Nginx
- Nginx的nginx.conf配置檔案中文註釋說明Nginx
- [轉]Nginx 配置檔案nginx.conf的完整配置說明Nginx
- Linux核心模組相關命令彙總及使用說明Linux
- WebApiClientCore使用說明WebAPIclient
- QLExpress使用說明Express
- postman 使用說明Postman
- Sqlite使用說明SQLite
- cmake使用說明
- certbot 使用說明
- nginx location 和proxy_pass 代理說明Nginx
- Bitbucket使用說明與SourceTree的使用
- 安裝成功的nginx,如何新增未編譯安裝模組(非覆蓋安裝http_image_filter_module)Nginx編譯HTTPFilter
- 一篇文章說透Nginx的rewrite模組Nginx
- hyperion模組分類說明及下載
- sql trace的使用說明一SQL
- Emacs 的 info 使用說明(轉)Mac
- 簡要的CKeditor使用說明
- JPA EntityManager使用說明
- wc 命令使用說明
- oracle orapwd使用說明Oracle
- Jupiter 使用說明
- BaseRecyclerViewAdapterHelper使用說明ViewAPT
- HSQL DB 使用說明SQL
- FreeSql 使用說明SQL
- Linux下玩轉nginx系列(二)——nginx配置檔案說明LinuxNginx