Nodejs 为什么没有处理图形的 API,为什么不引入 GD 库?
Nodejs 为什么没有处理图形的 API,为什么不引入 GD 库?
null
npm i gm --save
这个是借用第三方接口,感觉略麻烦。
因为不适核心需求阿.连 math 都不是核心需求了.
nodejs 就是个 v8 引擎加工的 js 平台阿.
大概 JS 语法跟异步才是核心了.其他都不是.
不要用一种语言或技术解决所有问题
图形是显示在 GUI 平台上的。 Linux 都没有 GUI ,发行版都是提供自己的 GUI 库。 nodejs 惯例显示在浏览器,浏览器已经有 canvas 和 webgl 图形库了。
吹得好
[来玩 electron 啊(]
Node.js本身是一个基于Chrome V8引擎的JavaScript运行环境,它专注于提供非阻塞的I/O操作,并没有直接包含处理图形的API。然而,Node.js的生态系统非常丰富,开发者可以通过引入第三方库来实现图形处理功能。
关于为什么不直接引入GD库,这主要是因为GD库是一个用C语言编写的图形处理库,而Node.js是基于JavaScript的。为了在Node.js中使用GD库的功能,需要将其封装为Node.js可以调用的模块。事实上,社区已经做了这样的工作,例如node-gd库。
node-gd是一个基于libgd的Node.js C++绑定库,它提供了对GD图形库功能的访问。使用node-gd,开发者可以在Node.js环境中轻松进行图像处理,如创建、打开、编辑图片等操作。以下是一个使用node-gd调整图片大小的示例代码:
const gd = require('node-gd');
async function resizeAndSave(originalPath, resizedPath, newSize) {
const originalImg = await gd.open(originalPath);
const resizedImg = await originalImg.copyResampled(
gd.createTrueColor(newSize.width, newSize.height),
0, 0, 0, 0,
originalImg.getWidth(), originalImg.getHeight(),
newSize.width, newSize.height
);
resizedImg.save(resizedPath);
[originalImg, resizedImg].forEach(img => img.destroy());
}
resizeAndSave('path/to/original.jpg', 'path/to/resized.jpg', { width: 200, height: 200 })
.then(() => console.log('缩略图已生成'))
.catch(err => console.error('生成缩略图出错:', err));
总之,虽然Node.js本身没有处理图形的API,但开发者可以通过引入第三方库如node-gd来实现图形处理功能。