gpt4 book ai didi

node.js - 从 Imagemagick 或 Graphicsmagick 获取图像的亮度信息

转载 作者:太空宇宙 更新时间:2023-11-03 23:21:40 29 4
gpt4 key购买 nike

是否有一个特定函数可以用来使用 Graphicmagick 或 Imagemagick 检索图像的亮度信息。我目前正在使用 Node.js aws lambda 函数来执行其他操作,例如调整图像大小。

但我无法找到正确的方法来检索亮度信息(图像有多暗)。

任何帮助或指导都会非常有帮助。

我引用了以下 URL。 Link 1 Link 2

最佳答案

我能想到的最简单的方法是将 fx 表达式与 .identify 方法结合使用。

var gm = require('gm').subClass({ imageMagick: true });
var filename = 'rose:'
gm(filename).identify({format:'%[fx:lightness]'}, function(err, info){
console.log('Lightness pixel value : ' + info);
//=> "Lightness pixel value : 0.182353"
});

正如引用链接所建议的,将图像转换为灰度可能会产生更准确的结果。

var brightness = 0.0;
gm().in(filename).colorspace('GRAY').out('-format').out('%[fx:mean*100]').toBuffer('info', function(err, buffer){
brightness = parseFloat(buffer.toString())
console.log('Gray brightness : ' + brightness)
//=> "Gray brightness : 39.4629"
});

或者正如马克在另一个问题/答案中指出的那样。将图像转换为 HSL 色彩空间可能会更灵活。

var brightness = 0.0;
gm().in(filename).colorspace('HSL').channel('B').out('-format').out('%[fx:mean*100]').toBuffer('info', function(err, buffer){
brightness = parseFloat(buffer.toString())
console.log('Lightness-channel average : ' + brightness)
//=> "Lightness-channel average : 37.219"
})

关于node.js - 从 Imagemagick 或 Graphicsmagick 获取图像的亮度信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48929061/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com