溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

搭建帶lua模塊的nginx調(diào)用ImageMagick工具實現(xiàn)實時剪切縮放圖片功能

發(fā)布時間:2020-06-07 16:44:06 來源:網(wǎng)絡(luò) 閱讀:996 作者:朱科強 欄目:建站服務(wù)器

一、安裝LuaJIT。

wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz

tar xf LuaJIT-2.0.5.tar.gz 

cd LuaJIT-2.0.5

make

make install

設(shè)置環(huán)境變量,設(shè)置后不要切換控臺,否則會失效。

export LUAJIT_LIB=/usr/local/lib

export LUAJIT_INC=/usr/local/include/luajit-2.0

做軟鏈接,并加載模塊

ln -s /usr/local/lib/libluajit-5.1.so.2 /usr/lib/libluajit-5.1.so.2 

ldconfig


二、安裝ImageMagick工具。

用yum裝就行了,挺方便的。

yum install -y ImageMagick


三、下載nginx以及ngx_devel_kit和nginx_lua_module模塊,解壓到指定路徑。如果本機已裝有nginx請忽略下載安裝nginx。

wget http://nginx.org/download/nginx-1.12.0.tar.gz

wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc5.tar.gz

tar xf nginx-1.12.0.tar.gz && tar xf v0.3.0.tar.gz && tar xf v0.10.9rc5.tar.gz


四、編譯安裝nginx,如果本機已裝有nginx請忽略安裝,但需要重新編譯,然后將老nginx執(zhí)行文件備份,并把新的弄過去。

./configure --prefix=/usr/local/nginx \

--add-module=(你的解壓路徑)/ngx_devel_kit-0.3.0 \

--add-module=(你的解壓路徑)/lua-nginx-module-0.10.9rc5

(本機如果已經(jīng)裝了nginx的,要把你nginx曾經(jīng)編譯的參數(shù)也加上)

make

沒有裝nginx的,直接make install裝了的,參考https://cache.yisu.com/upload/information/20200309/32/42291.com$' {

            root   /opt/qikanjpg;

        }


location ~ '/pdgpath/([0-9a-z_]+)\@([0-9]+)x([0-9]+)\.(gif|jpg|png|jpeg)$' {

root /opt/qikanjpg;

set $p_w_picpath_root '/opt/qikanjpg/pdgpath';

set $fileName $1;

set $width $2;

set $height $3;

set $origin $p_w_picpath_root/$fileName.jpg;

set $file_1 $p_w_picpath_root/${fileName}@${width}x${height}.jpg;


if (!-f $file_1) {

rewrite_by_lua '

local comd = "convert -sample "..ngx.var.width.."x"..ngx.var.height.." "..ngx.var.origin.." "..ngx.var.file_1;

   os.execute(comd);

';

}

}


location ~ '/pdgpath/([0-9a-z_]+)\@([0-9]+)x([0-9]+)_f\.(gif|jpg|png|jpeg)$' {

root /opt/qikanjpg;

    set $p_w_picpath_root '/opt/qikanjpg/pdgpath';

set $fileName $1;

set $width $2;

set $height $3;

set $origin $p_w_picpath_root/$fileName.jpg;

set $file $p_w_picpath_root/${fileName}@${width}x${height}_f.jpg;


if (!-f $file) {

rewrite_by_lua '

local command = "convert -strip -quality 80% -resize "..ngx.var.width.."x"..ngx.var.height.."^ -gravity center -crop "..ngx.var.width.."x"..ngx.var.height.."+0+0 "..ngx.var.origin.." "..ngx.var.file;

            os.execute(command);

';

}

}


七、訪問圖片,進(jìn)行測試。

以上面的配置文件,在/opt/qikanjpg/pdgpath/放一個1.jpg。

原圖http://(your_server_ip):(your_server_port)/pdgpath/1.jpg

按寬和高較小值等比縮放原圖http://(your_server_ip):(your_server_port)/pdgpath/1@寬x高.jpg

按寬和高較大值等比縮放原圖再從中間切一次寬和高那么大一個區(qū)域http://(your_server_ip):(your_server_port)/pdgpath/1@寬x高_(dá)f.jpg


更多的切割功能,請convert --help查看自行琢磨,然后添加到local command =里面就行了。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI