1

我想知道是否可以从 api 调用中分析图像,以确定图像的对比度是高还是低。我知道有like.js可以找到两个图像之间的差异。所以我认为我想做的事情是可能的。

我将如何分析图像的对比度水平?如果在javascript中不可能,其他语言有什么解决方案?

4

2 回答 2

1

大多数解决方案基于

  1. 图像的获取

  2. 创建内存画布

  3. 使用将图像绘制到画布上drawImage

  4. 使用 恢复像素数据getImageData。你得到一个数组,其中每个像素都由四个数字的序列(RGBA)定义

  5. 在这些像素上应用任何算法。确定对比度的算法有很多,每种算法都有优点和缺点,您必须选择适合您需求的算法

第一步的示例(最后一步取决于您的需要):

var canvas = document.createElement('canvas');
canvas.width = myImage.width;
canvas.height = myImage.height;
var context = tempCanvas.getContext('2d');
context.drawImage(myImage, 0, 0);
var pixels = context.getImageData(0, 0, myImage.width, myImage.height).data;
于 2013-06-18T15:12:43.527 回答
0

Pixastic 是一个 JavaScript 库,它允许您使用一点 JavaScript 对图像执行各种操作、过滤器和精美效果。它通过利用 HTML5 Canvas 元素工作

加载图片后,

params.options.contrast

给你对比的价值。

更多信息和演示可在此处获得

于 2013-06-18T15:25:31.733 回答