我是靠谱客的博主 幽默可乐,这篇文章主要介绍nodejs图片裁剪、缩放、水印,现在分享给大家,希望可以做个参考。

关于nodejs下图片的裁剪、水印,网上的模块很多,主要如下:

复制代码
1
2
3
4
gm:https://github.com/aheckmann/gm node-canvas:https://github.com/Automattic/node-canvas node-images:https://github.com/zhangyuanwei/node-images Cloudinary:http://cloudinary.com/documentation/node_image_manipulation

这里推荐使用gm模块,首先是安装:

先要安装GraphicsMagick或者ImageMagick,因为gm是基于这两种图形处理工具包的。

直接上源码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
var gm = require("gm"); var spawn = require('child_process').spawn; //提供生成node子进程的方法 var config = {}; config.position = { NorthWest:"NorthWest", North:"North", NorthEast:"NorthEast", West:"West", Center:"Center", East:"East", South:"South", SouthWest:"SouthWest", SouthEast:"SouthEast" }; /** * 裁剪图片 * @param srcImg 待裁剪的图片路径 * @param width 宽度 * @param height 高度 * @param x x坐标 * @param y y坐标 */ function cropCurrentImg(srcImg,width, height, x, y) { gm(srcImg).crop(width, height, x, y).write(srcImg, function (err) { if (err) { return handler(err); } }); } /** * 裁剪图片 * @param srcImg 待裁剪的图片路径 * @param destImg 裁剪后的图片路径 * @param width 宽度 * @param height 高度 * @param x x坐标 * @param y y坐标 */ function cropImg(srcImg,destImg,width, height, x, y) { gm(srcImg).crop(width, height, x, y).write(destImg, function (err) { if (err) { return handler(err); } }); } cropCurrentImg("../../public/aa.png","../../public/dest.jpg",100,100,50,50); /** * 缩放图片 * @param srcImg 待缩放的图片路径 * @param size 缩放后的图片大小(长宽均为size) */ function resizeCurrentImg(srcImg, size) { gm(srcImg).resize(size, size).write(srcImg, function (err) { if (err) { return handler(err); } }); } /** * 缩放图片,默认输出图片质量75%,格式PNG * @param srcImg 待缩放的图片路径 * @param destImg 缩放后的图片输出路径 * @param size 缩放后的图片大小(长宽均为size) */ function resizeImgWithArgs(srcImg, destImg, size) { gm(srcImg).resize(size, size).write(destImg, function (err) { if (err) { return handler(err); } }); } /** * 缩放图片 * @param srcImg 待缩放的图片路径 * @param destImg 缩放后的图片输出路径 * @param quality 缩放的图片质量,0~100(质量最优) * @param width 缩放后的图片宽度 * @param height 缩放后的图片高度 * @param imgFormat 缩放后的图片格式 */ function resizeImgWithFullArgs(srcImg, destImg, quality, width, height, imgFormat) { gm(srcImg).resize(width, height).quality(quality).setFormat(imgFormat).write(destImg, function (err) { if (err) { return handler(err); } }); } /** * 添加水印 * @param srcImg 待添加水印的图片路径 * @param watermarkImg 水印图片路径 * @param destImg 添加水印后图片输出路径 * @param alpha 透明度,0~100(为0表示全透明,100不透明) * @param position 水印位置,NorthWest, North, NorthEast, West, Center,East, SouthWest, South, or SouthEast */ function addWaterMark(srcImg,watermarkImg,destImg,alpha,position){ var composite = spawn('gm', ['composite', '-gravity', position, '-dissolve', alpha, watermarkImg, srcImg,destImg]); composite.on('exit', function (code) { }); } exports.config = config; exports.resizeCurrentImg = resizeCurrentImg; exports.resizeImgWithArgs = resizeImgWithArgs; exports.resizeImgWithFullArgs = resizeImgWithFullArgs; exports.cropCurrentImg = cropCurrentImg; exports.cropImg = cropImg; exports.addWaterMark = addWaterMark;

 

转载于:https://my.oschina.net/caiya928/blog/784054

最后

以上就是幽默可乐最近收集整理的关于nodejs图片裁剪、缩放、水印的全部内容,更多相关nodejs图片裁剪、缩放、水印内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(106)

评论列表共有 0 条评论

立即
投稿
返回
顶部