如何在 Node Jimp 中使用 crop() 函数裁剪图像?


NodeJS – crop() 是一个内置函数,用于裁剪图像。我们可以使用 crop 在指定的坐标和尺寸内选择/裁剪图像。

语法

crop( x, y, w, h, cb )

crop() 参数定义

  • x – 它将保存裁剪的 x 坐标值。(必需)

  • y – 它将保存裁剪的 y 坐标值。(必需)

  • w – 此参数用于存储裁剪图像的宽度。(必需)

  • h – 此参数用于存储裁剪图像的高度。(必需)

  • cb – 这是一个可选参数,可以在编译完成后调用。

输入图像

使用 Node JIMP – CROP()

在使用 crop() 函数之前,请检查以下语句是否已执行以设置环境。

  • npm init -y // 初始化 Node 环境

  • npm install jimp --save // 安装 jimp 依赖项

  • 创建一个 crop.js 文件并将以下代码片段复制粘贴到其中。

  • 使用 node crop.js 运行代码。

注意 - 方法名称应与 JS 文件名匹配。只有这样才能调用所需的方法。

示例

const Jimp = require('jimp') ;

async function crop() { // Function name is same as of file name
   // Reading Image
   const image = await Jimp.read
   ('/home/jimp/tutorials_point_img.jpg');
   image.crop(100, 50, 470, 270)
   .write('/home/jimp/crop.jpg');
}

crop(); // Calling the function here using async
console.log("Image is processed successfully");

输出

使用 Node JIMP – 带有 'cb' 可选参数的 CROP()

示例

const Jimp = require('jimp') ;

async function crop() {
   // Reading Image
   const image = await Jimp.read
   ('/home/jimp/tutorials_point_img.jpg');
   // Checking if any error occurs while cropping
   image.crop(150, 0, 1000, 1800, function(err){
      if (err) throw err;
   })
   .write('/home/jimp/crop.jpg');
}

crop();
console.log("Image is processed successfully");

输出

/home/jimp/ >> node crop.js // On running the above code snippet
Image is processed successfully
(node:194779) UnhandledPromiseRejectionWarning: RangeError [ERR_OUT_OF_RANGE]:
The value of "offset" is out of range. It must be >= 0 and <= 1119996.
Received 1120040
   at boundsError (internal/buffer.js:49:9)
   at Buffer.readUInt32BE (internal/buffer.js:192:5)
   at Jimp.<anonymous> (/home/jimp/node_modules/@jimp/plugincrop/dist/index.js:43:37)
   at scan (/home/jimp/node_modules/@jimp/utils/dist/index.js:53:9)
   at Jimp.scanQuiet
(/home/jimp/node_modules/@jimp/core/dist/index.js:1262:32)
   at Jimp.cropQuiet (/home/jimp/node_modules/@jimp/plugincrop/dist/index.js:42:12)

更新于:2021年4月27日

4K+ 次浏览

启动您的 职业生涯

完成课程后获得认证

开始学习
广告