Nimg
NImg 是基于ZImg的nodejs实现。
去掉了ZImg中 memcached的缓存功能,图片上传处理接口使用json数据格式。不兼容ZImg的文件存储。
环境要求:
操作系统:任何能安装 nodejs 的操作系统
node版本:>=v0.10
ImageMagick版本:>=6.8.7
python版本:>=2.6
##使用##
-- 使用前确保node环境及ImageMagick已安装好
#下载NImg
wget https://github.com/ofpay/nimg/archive/master.zip -O nimg.zip
#解压
uzip nimg.zip
#安装依赖模组
cd nimg-master
npm install
#修改配置,确保图片存储及上传目录有足够的权限
vi config.js
exports.tmproot='/node/temp';//上传临时目录,
exports.imgroot='/node/img';//图片存储目录,
exports.errorlog='/node/log/error.log';//程序错误日志,记录
exports.port=9000;//http端口号
exports.appname='NImg';
exports.maxFileSize=1024*1024;//上传最大限制单位字节1024kb1mb
exports.maxSide=800;//最大截图边长
exports.minSide=30;//最小截图边长
//支持图像文件类型
exports.imgtypes={
"gif":"image/gif",
"jpeg":"image/jpeg",
"jpg":"image/jpeg",
"png":"image/png"
};
#启动
sh nimg.sh start
#查看控制台输出
tailf nohup.out
#关闭
sh nimg.sh stop
api
###名词解释###
userpath 用户目录,NImg支持多用户系统,使用userpath来区分用户目录
md5 根据图片信息得到md5值
t 图像类型,Nimg支持的目前有4种: jpg|jpeg|png|gif
w 图像宽度
h 图像高度
url 图像访问路径,上传时由接口返回
原图url:{userpath}/{md5}.{t} or {userpath}/{md5}-0-0.{t}
等比例缩放图url: {userpath}/{md5}-{w}-{h}.{t}
强制缩放图url: {userpath}/{md5}-{w}-{h}-f.{t}
根据高边等比例缩放url: {userpath}/{md5}-0-{h}-s.{t}
根据宽边等比例缩放url: {userpath}/{md5}-{w}-0-s.{t}
act 图像处理命令
del 删除图像,不需要参数
tleft 左旋90度
tright 右旋90度
resize 缩放,注意:此操作是对当前资源做出修改,不生成新文件
info 返回图片信息,高度,宽度,图片大小
param 命令参数
调用resize时,需要. 等比例缩放示例: 500X500 强制缩放:500X500!
act 目录处理命令
tsize 获取目录下所有文件大小字节数
###说明###
1.图片访问地址 限制:无
method:get
返回: 图像文件
2.上传api 限制:内网调用
可选参数:act(图像预处理),param(预处理参数)
示例:
裁图:
act=crop
param=wxh+x+y 例如:151x189+174+0
缩图:
act=resize
param=wxh[!] 例如:100x100(等比例) 200x200!(强制)
旋转:
act=rotate
param=[-]r 例如:90 (右旋90度) -50(左旋50度)
method:post
成功返回
{
"code":200,
"msg":"upload success!",
"data":{
"t":"gif",
"userpath":"01",
"md5":"d6da9ccfcf52211eba99722207ee3d9a",
"url":"01/d6da9ccfcf52211eba99722207ee3d9a.gif"
}
}
失败返回
{
"code":300,
"msg":"filetype error,not supported txt"
}
3.图像处理api 限制:内网调用
method:get
成功返回
{
"code":200,
"msg":"exec ok!"
}
失败返回
{
"code":301,
"msg":"exec fail"
}
4.目录管理api 限制:内网调用
成功返回
{
"code":200,
"msg":"success!",
"data":{
"userpath":"854899",
"total":32515395
}
}
###api错误代码对照表###
编码
说明
200
操作成功
300
上传错误
301
处理错误
404
资源不存在