玉溪信息网
育儿
当前位置:首页 > 育儿

这些天重新改进了我的图片存储系统已经完全

发布时间:2019-10-09 19:49:42 编辑:笔名

这些天重新改进了我的图片存储系统,已经完全改用php + 命令行GraphicsMagick 及 nginx + lua + GraphicsMagick 的方法处理,php + 命令行GraphicsMagick 用于预先生成规定范围内尺寸的图片,nginx + lua + GraphicsMagick 用于动态生成指定大小缩图。

GraphicsMagick 是从ImageMagick分离出来的, 比ImageMigack 性能更好, 更适合站服务器端处理图片用。

CentOS下安装GraphicsMagick

很简单, 先启用EPEL repo, 直接yum安装

# yum -y install GraphicsMagick GraphicsMagick-devel

搞定!

如果你需要在php内使用 pecl 扩展 gmagick,安装方法如下

# pecl install gmagick

# echo 'extension=' /etc/php.d/i

安装 pecl 扩展出错

# pecl install gmagick

Failed to download pecl/gmagick within preferred state stable, latest release is version 1.1.0RC3, stability beta, use channel:// to install

使用如下命令

# pecl install channel://

搞定!

GraphicsMagick 常用命令

使用命令基本和 ImageMagick 相同, 放一段我生缩图函数内的代码

注意: 使用 thumbnail 参数比使用 convert 性能好, 用于处理大的图片

if ($width) {

if (!$height) {

$cmd = "gm convert -thumbnail $width -qality $quality $file $new_file";

}

else {

$cmd = "gm convert -thumbnail {$width}x{$height}^ -gravity center -extent {$width}x{$height} -quality $quality $file $new_file";

}

}

elseif ($height) {

$cmd = "gm convert -thumbnail x$height -quality $quality $file $new_file";

}

更多可以参考官方文档:

nginx + lua + GraphicsMagick

nginx + lua 安装

OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 [[Nginx]] 核心,很多的常用的[[第三方模块|]],以及它们的大多数依赖项。

wget

tar -zxvf ngx_

cd ngx_openresty-1.0.15.10

./configure --user=www --group=www --prefix=/usr/local/openresty \

--with-luajit \

--with-http_iconv_module

make -j4 #2核就j2,8核j8

make install

我的 nginx 代码就不贴了, 参考以下

location /images/ { set $image_root /home/tomcat/eisp-files; set $file "$image_root$uri";

if (!-f $file) { rewrite_by_lua ' local index = nd(i, "([]+)x([]+)"); local originalUri = b(i, 0, index-2); local area = b(i, index); index = nd(area, "([.])"); area = b(area, 0, index-1);

local image_sizes = {"80x80", "800x600", "40x40"}; function ntains(table, element) for _, value in pairs(table) do if value == element then return true end end return false end

if ntains(image_sizes, area) then local command = "gm convert " .. age_root .. originalUri .. " -thumbnail " .. area .. " -background gray -gravity center -extent " .. area .. " " .. le; ecute(command); else it(404); end; '; }

alias /home/tomcat/eisp-files/images/; expires 7d; }

原文地址:

注:相关站建设技巧阅读请移步到建站教程频道。

上海远大心胸医院开车怎么走
杭州杭城皮肤病研究院电话
上海远大心胸医院怎么搭车
杭州杭城皮肤病研究院在线咨询
上海远大心胸医院怎么坐车