如何在图像自动定向后获取图像尺寸?
尺寸仍然提供预先自动定向的尺寸,而不是旋转后的尺寸。 (因此翻转x和y尺寸)。
var original = gm(response.Body).autoOrient();
original.size(function (err, size) {
if (err) {
console.error(err);
return res.status(500).send(err);
}
resize_photo(size, max_size, original, function (err, photo) {
res.setHeader('Content-Type', 'image/jpeg');
res.send(photo);
});
});
答案 0 :(得分:0)
我遇到了同样的问题,发现如果我将autoOrient文件写出来然后再读回来,size()会读取翻转的尺寸。
//Ignoring errors
gm('/images/original.jpg').autoOrient().write('/images/autoOriented.jpg', function (err) {
gm('/images/autoOriented.jpg').size(function(err, size) {
console.log('size: ', size);
});
});
答案 1 :(得分:0)
一种解决方案是写入缓冲区,然后像这样调用.size
:
gm(response.Body).autoOrient().toBuffer(function (err, buffer) {
if (!err) {
gm(buffer).size(function (err, size) {
if (!err) {
console.log(size);
}
});
}
});
注意:这是有效的,因为.size
在新的自动导向缓冲区而不是原始文件或原始缓冲区上运行image magick命令identify
。