乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      nginx利用image_filter動態(tài)生成縮略圖

       WindySky 2017-03-10

      "我現(xiàn)在是有些圖片需要生成縮略圖,這個現(xiàn)在加了image_filter這個已經(jīng)實現(xiàn)了,但我不知道怎么樣才能訪問我上傳的原圖"

      剛開始覺得也不太好弄,讓他用程序區(qū)處理,實際上稍微動腦筋分析一下也可以不修改程序?qū)崿F(xiàn)動態(tài)生成縮略圖且能夠訪問原圖。

      前提是需要定好圖片的訪問規(guī)則。

      先來看一下什么是nginx的image filter模塊。

      HttpImageFilterModule用來裁剪過大的圖片到指定大小,是nginx自帶模塊,默認不會開啟
      開啟HttpImageFilterModule需要在編譯要帶上參數(shù) --with-http_image_filter_module

      該模塊主要有兩個指令:
      語法: image_filter (test | size | resize width height | crop width height)
      默認是: 無
      可出現(xiàn)的上下文: location

      該指令指定圖像的轉(zhuǎn)化形式:

      test - 測試回復(fù)是否是JPEG、GIF、或PNG圖片(不支持BMP等其他格式),出錯時返回415。
      size - 返回圖片的JSON數(shù)據(jù),比如:( "Img": ( "width": 100, "height": 100, "type": "gif"))
      resize - 根據(jù)設(shè)置按比例得減小圖像,比如100*100的圖片,而設(shè)置是50*25,減小后的圖片為25*25。如果你只想設(shè)置一個維度,可以用“-”代替。出錯時返回415。
      crop - 根據(jù)設(shè)置按比例得減小圖像,然后裁剪成跟設(shè)置一樣大小的圖片。比如100*100的圖片,而設(shè)置是50*25,減小后的圖片為50*50,Nginx會選取中間高度25的像素,形成50*25的圖片,所以圖片會有缺失。如果你只想設(shè)置一個維度,可以用“-”代替。出錯時返回415。

      語法: image_filter_buffer size
      默認值: image_filter_buffer 1M
      可出現(xiàn)的位置: http, server, location

      該指令設(shè)置單圖片緩存的最大值,如果過濾的圖片大小超過緩存大小,會報錯返回415。

      現(xiàn)在開始時重點:

      有了如上認識再配合locaiont、if、image_filter 就可以讓nginx動態(tài)生成縮略圖了。

      假設(shè)你的圖片位于/img目錄下

      訪問縮略圖方式

      http://www./img/9GUMJR7200AJ0003_90x90.jpg

      訪問原圖方式

      http://www./img/9GUMJR7200AJ0003_90x0.jpg

      http://www./img/9GUMJR7200AJ0003_0x50.jpg

      http://www./img/9GUMJR7200AJ0003_0x0.jpg

      http://www./img/9GUMJR7200AJ0003.jpg

      添加如下配置到server上下文即可

              location ~* /img/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ {            
                  set $h $2;
                  set $w $3;
                  if ($h = "0") {
                      rewrite /img/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ /img/$1.$4 last;
                  }
                  if ($w = "0") {
                      rewrite /img/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ /img/$1.$4 last;
                  }
      
                  #根據(jù)給定的長寬生成縮略圖
                  image_filter resize $h $w;
                  #原圖最大2M,要裁剪的圖片超過2M返回415錯誤,需要調(diào)節(jié)參數(shù)image_filter_buffer 
                  image_filter_buffer 2M;                          
                  
                  #error_page  415              /img/notfound.jpg;
                  try_files /img/$1.$4  /img/notfound.jpg;	
              }
      
              location ~* /img {
                  
              }

      推薦閱讀:

      http://wiki./HttpImageFilterModule

      http:///en/docs/http/ngx_http_image_filter_module.html

      http://cwtea.blog.51cto.com/4500217/1333142

      轉(zhuǎn)自:http://www./2160.html     

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多