nodejs gm图片操作模块笔记

官方文档

gm npmjs

直接带代码 记录下

const fs = require('fs'),
    gm = require('gm').subClass({ imageMagick: true }),
    path = require('path')

fs.readdir('./gm-img/', (err, doc) => {

    for (let i of doc) {
        addWatermark(i)
    }
   
})



let watermark_path_300 = path.join(__dirname, './logo-300.png')
let watermark_path_150 = path.join(__dirname, './logo-150.png')
let file_path = './gm-img/'

function addWatermark(filename) {
    console.log(path.join(__dirname, '${file_path}${filename}'))
    gm(path.join(__dirname, '${file_path}${filename}'))

        .size(function(err, size) {
            if (!err)
                if (size.width > 900 && size.height > 350) {
                    console.log(1250)
                    gm()
                        .in('-page', '+0+0')
                        .in(path.join(__dirname, '${file_path}${filename}'))
                        .in('-page', '+${size.width-300}+${size.height-107}') // location of smallIcon.jpg is x,y -> 10, 20
                        .in(watermark_path_300)
                        .mosaic()
                        .write(path.join(__dirname, '${file_path}${filename}'), function(err) {
                            if (err) console.log(err);
                        });

                }else if(size.width > 150 && size.height > 50){
                	console.log(  150)
                	gm()
                        .in('-page', '+0+0')
                        .in(path.join(__dirname, '${file_path}${filename}'))
                        .in('-page', '+${size.width-150}+${size.height-55}') // location of smallIcon.jpg is x,y -> 10, 20
                        .in(watermark_path_150)
                        .mosaic()
                        .write(path.join(__dirname, '${file_path}${filename}'), function(err) {
                            if (err) console.log(err);
                        });
                }
        });
}


与本文有关的文章

express/ multer 上传图片文件 pm2 启动node以及linux 环境变量配置 nginx设置多个node项目 nginx静态资源与node冲突解决方案 nodejs/pm2基本操作 cookie,session,nodejs log4js-node日记模块 百度分享报错url不合法!!原创!! npm的常用命令。 nginx反向代理,node获取真实IP nodejs fs删文件 multer对单个上传的文件做限制处理。 nodejs发送邮件实例 qq email nodejs模块之FS File System(文件系统) DEMO演示 nodejs express允许跨域访问设置 用nodejs批量获取qq群成员信息 nodejs request模块实例以及爬虫 nodejs express 模块公共代码部分提取 express cookie清除无效?? Node中require和import 转:【全文】狼叔:如何正确的学习Node.js 分享一些有用的工具网站 Nodejs接收图片base64格式保存为文件再返回图片url地址 &#x(unicode编码后的汉字)JS转译方法-nodejs爬虫转译乱码 linux centos 7.4安装nodejs与nginx mongodb Nodejs全局模块安装了却显示命令不存在? nodejs服务器文件直传阿里云oss nodejs ejs模块try catch的坑 nodejs fs模块常用API 读取目录,重命名等等 nodejs实现百度post推送 nodejs爬虫记录 nodejs 分词模块推荐-nodejieba npm 模块安装机制简介 nodejs流式传输请求时如何处理错误 在pipe前添加on error | Error: getaddrinfo EAI_AGAIN www.xxx.com | connect timedout 百度翻译API nodejs版本 nodejs 图片加水印 images模块 nodejs gm图片操作模块笔记 npm cheerio模块移除元素上不必要的属性 - nodejs nodejs 模块推荐 html-minifier (html压缩)压缩模块 nodejs 定时任务模块(node-schedule) nodejs模块之 cheerio 中文乱码 jq.fileupload上传文件 服务的nodejs接收 demo nodejs express - PayloadTooLargeError: request entity too large ? nodejs使用gmail批量发送email nodejs request乱码 nodejs下载远程文件 nodejs下载远程文件 简要DEMO nodejs 移动文件位置 nodejs 递归删除方法
回到顶部