我正在使用 Jimp ( https://www.npmjs.com/package/jimp ) 库来裁剪图像。
裁剪工作正常,但我只遇到图像方向问题。
有时,用户上传旋转图像,其结果是旋转裁剪图像。
我浏览了https://www.npmjs.com/package/jimp文档,但找不到与此相关的任何内容。
以下是我浏览过但没有帮助的几个链接:
https://justmarkup.com/articles/2019-10-21-image-orientation/
在客户端的 JavaScript 中访问 JPEG EXIF 旋转数据
请帮忙
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);
})
}
})
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 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 …
Run Code Online (Sandbox Code Playgroud) 因此,我使用一些库以特定方式将可数图像连接到单个图像。
这个lib使用Jimp库来完成它,并且在所有joins之后返回一个Jimp
对象。像这样:
Jimp {
_background: 0,
bitmap: {
data: <Buffer 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... 2359246 more bytes>,
width: 768,
height: 768
}
}
Run Code Online (Sandbox Code Playgroud)
加入后,我需要将此Jimp
对象转换为节点Buffer
对象,而不将图像作为文件写入磁盘并返回Buffer
以在后续步骤中使用它。
是否可以?我在 Jimp DOC 中找不到任何内容。当我尝试写入Jimp.bitmap.data
文件时,此图像已损坏...
谢谢!
我有一个向欢迎频道发送消息的代码:
import Discord from "discord.js"
const client = new Discord.Client()
client.on("guildMemberAdd", async member => {
let bg = await jimp.read("img/img_bg.png") // Bg da imagem.
if(guildId === "729008562747080836") {
bg = await jimp.read("img/img_bg-thunder.png") // Bg da imagem da Thunder.
}
let font = await jimp.loadFont(jimp.FONT_SANS_32_WHITE) // Fonte usada na imagem.
let mask = await jimp.read("img/img_mask.png") // Máscara da imagem.
let welcomeImg = await jimp.read("img/img_txt-welcome.png") // Imagem dando boas-vindas.
let name = member.user.username // Nome do novo membro.
let lenName = name.length …
Run Code Online (Sandbox Code Playgroud)