【问题标题】:Error cropping a base64 format image using jimp package in Nodejs在 Nodejs 中使用 jimp 包裁剪 base64 格式图像时出错
【发布时间】:2019-02-23 07:28:06
【问题描述】:
var base64str="data:image/jpeg;base64,***"//base64 format of the image
var buf = Buffer.from(base64str, 'base64');
  
jimp.read(buf, (err, image) => {
  if (err) throw err;
  else {
    image.crop(140, 50, 200, 280)
      .quality(100)
      .getBase64(jimp.MIME_JPEG, function(err, src) {
        console.log("rb is \n")
        console.log(src);
      })
  }
})

我正在尝试使用 npm 中的 jimp 包来裁剪图像的 base64 格式,但出现如下错误:

Error: Could not find MIME for Buffer <null>
    at Jimp.parseBitmap (D:\Node\image-crop\node_modules\@jimp\core\dist\utils\image-bitmap.js:108:15)
    at new Jimp (D:\Node\image-crop\node_modules\@jimp\core\dist\index.js:425:32)
    at _construct (D:\Node\image-crop\node_modules\@jimp\core\dist\index.js:100:393)
    at D:\Node\image-crop\node_modules\@jimp\core\dist\index.js:932:5
    at new Promise (<anonymous>)
    at Function.Jimp.read (D:\Node\image-crop\node_modules\@jimp\core\dist\index.js:931:10)
    at Object.<anonymous> (D:\Node\image-crop\index.js:46:6)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)

有什么方法可以裁剪 base64 格式的图像而不将其转换为 Nodejs 中的图像?

【问题讨论】:

    标签: node.js image jimp


    【解决方案1】:

    问题来自 base64 字符串。要使其正常工作,只需删除前缀 data:image/jpeg;base64,,然后保留数据即可。

    例子:

    const base64str = "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="//base64 of a 1x1 black pixel
    const buf = Buffer.from(base64str, 'base64');
    
    jimp.read(buf, (err, image) => {
      if (err) throw err;
      else {
        image.crop(140, 50, 200, 280)
          .quality(100)
          .getBase64(jimp.MIME_JPEG, function (err, src) {
            console.log("rb is \n")
            console.log(src);
          })
      }
    })
    

    输出是:

    rb 是

    data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA[...]

    【讨论】:

      猜你喜欢
      • 2016-08-27
      • 2019-05-10
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 2016-08-28
      • 2021-11-06
      • 2020-04-16
      • 1970-01-01
      相关资源
      最近更新 更多