环境要求

1. 安装 GraphicsMagick

下载地址:

http://www.graphicsmagick.org/

2. 安装 ImageMagic

下载地址:

https://imagemagick.org/index.php

3. 安装 gm

直接命令行安装: npm install --save gm

环境变量配置

GraphicsMagick 和 ImageMagic 安装完以后,需要把对应执行文件所在目录添加到环境变量,如下图所示。

实现切割逻辑

读取大图对应的数据文件(我这里用到的是 json 文件,其他格式的,可以根据实际格式修改对应逻辑),获取大图的,根据数据信息,读取对应位置和大小的图片,保存到本地即可,裁剪图片主要用下面的方法进行实现。

gm('png图片路径').crop(width, height, x, y).write(`碎图保存路径`, err => {if(err != null){console.log(err);}}
);

下图是实现时选择的大图对应 atlas 数据文件,格式化后的样式。

上图可以看出来,取出 frames 内的所有图片信息,就可以在大图内裁剪每张图片了,图片的名字同时也能获取得到。

具体实现代码如下:

var gm = require('gm');
var fs = require('fs');
const { createCipher } = require('crypto');var atlasname = '';
var pngname = '';
var filepath = '';process.stdout.write('please enter filename:\n');
process.stdin.on('data', e => {let str = e.toString();str = str.substring(0, str.indexOf('\r'));filepath = `./pic/${str}`;atlasname = `${filepath}.atlas`;pngname = `${filepath}.png`;fs.mkdirSync(filepath);let data = fs.readFileSync(atlasname);let json = JSON.parse(data.toString());for(var key in json.frames){console.log(`${key}`);var frame = json.frames[key].frame;gm(pngname).crop(frame.w, frame.h, frame.x, frame.y).write(`./${filepath}/${key}`, err => {if(err != null){console.log(err);}});}
});

上图是按照自己方便获取图片的格式进行的实现,可以根据自己的需要,进行逻辑修改即可,还可以添加批量处理。

上图是裁剪前的大图,下图是裁剪后成张的碎图。

扫码关注,获取更多分享!!

nodejs 图片处理工具 gm 的使用!相关推荐

  1. nodejs gm 中文 linux,nodejs图片处理工具gm用法

    在做H5应用中,有时候会涉及到一些图片加工处理的操作,nodejs有一个很好的后台图片处理module,就是这里说的gm.gm有官方文档,但感觉写得太抽象,反而看不懂了.这里把一些常见的用法写下,供大 ...

  2. nodejs图片处理工具gm用法

    在做H5应用中,有时候会涉及到一些图片加工处理的操作,nodejs有一个很好的后台图片处理module,就是这里说的gm.gm有官方文档,但感觉写得太抽象,反而看不懂了.这里把一些常见的用法写下,供大 ...

  3. 【linux】记录nodejs使用图片处理工具gm

    前言 nodejs项目需要生成缩略图,由于node本身无法处理,需要用到GraphicsMagick工具,于是开始网上找工具,中间踩了一些坑,于是记录下来. 安装GraphicsMagick 安装这个 ...

  4. node_demo_03 一个好玩的图片处理工具gm模块小练习。

    /* *修改图片大小 */ //需引用第三方模块,在工作目录下执行npm install gm即可 //通过require引用,Subclass gm to enable ImageMagick va ...

  5. nodejs图片总结

    nodejs图片总结 今天终于把朴灵老师写的<深入浅出Node.js>给学习完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架.库的使用层面上,而是从不同的视角 ...

  6. 强大的图片处理工具GraphicsMagick

    前言 项目中我们经常需要对图片进行压缩.剪切.添加水印.生成缩略图.图片合成等图片处理操作,关于这些图片复杂处理,我们将如何实现呢,本文将介绍GraphicsMagick对图片进行相关处理功能. 简介 ...

  7. CV之LabelImg:图片标注工具之LabelImg(图像标注工具)的简介、安装、使用方法详细攻略

    CV之LabelImg:图片标注工具之LabelImg(图像标注工具)的简介.安装.使用方法详细攻略 目录 LabelImg的简介 常见的图片标注工具 LabelImg trainingImageLa ...

  8. ImageView可直接调用的,根据URL设置图片的工具类

    ImageView 是Android编程中最常用的组件之一. 但是根据图片的URL设置图片却很麻烦.因为获取网络图片的操作必须在异步线程中进行,根据URL设置ImageView图片就可能需要进行线程间 ...

  9. VOC数据集图片标注工具labelImg简介、安装、使用方法详细攻略(windows) PyQt4、PyQt5

    参考文章1:labelImg:图片标注工具之labelImg的简介.安装.使用方法详细攻略 参考文章2:LabelImg labelImg的安装 用gitbash打开,运行git clone http ...

最新文章

  1. PHP 实现无限分类
  2. linux dhcp 论文,毕业论文—基于linux的dhcp服务器配置.doc
  3. python面向对象总结_python面向对象总结
  4. CSDN七夕包分配,最后一天啦!
  5. 书评:测试驱动开发的艺术
  6. 处理您的请求时发生错误(Web Dynpro ABAP)
  7. PHP底层运行原理初探
  8. vue 删除两个集合中相同的数据_vue.js如何删除数组里面的数据
  9. .net 移除html标签,.net去除html标签代码
  10. 【前端干货】CSS 的空格处理
  11. IT-游戏 学习资源思维导图(持续更新,欢迎关注点赞加评论)
  12. 独家对话谢宝友:做一款类似于 Linux 的国产操作系统 | 人物志
  13. 项目还有哪些优化的地方
  14. [转载] Python编程之np.argmax()的用法
  15. java程序怎么混淆,使用混淆器,保护你的java程序,混淆java
  16. securecrt 8.1 7.3 注册机 使用步骤【转】
  17. oracle+omf+格式,oracle omf
  18. Unix Domain Socket
  19. 朱嘉明:数字经济和非同质时代——NFT
  20. excel——设置单元格格式

热门文章

  1. 【WebRTC研究(2)】Kurento作为IPC的WebRTC网关(译)
  2. CPU主频 外频 芯片组 倍频 cache FSB PCI简介
  3. 揭秘电影版《武林外传》 佟掌柜成钉子户
  4. 计算机专业课观后感,计算机基础知识读后感
  5. docker container内部杀死进程
  6. 手表怎么升级鸿蒙系统,华为手表watch3将搭载鸿蒙系统,你关注的升级点都在这!...
  7. 游侠我的世界显示java_我的世界怎么用命令方块在屏幕上显示字
  8. 小米路由器怎么设置?小编教你设置小米路由器的方法
  9. 程序员找不到女朋友的原因,脱单看这里!
  10. The application could not be installed: INSTALL_FAILED_TEST_ONLY解决方案