我想知道是否可以从 api 调用中分析图像,以确定图像的对比度是高还是低。我知道有like.js可以找到两个图像之间的差异。所以我认为我想做的事情是可能的。
我将如何分析图像的对比度水平?如果在javascript中不可能,其他语言有什么解决方案?
我想知道是否可以从 api 调用中分析图像,以确定图像的对比度是高还是低。我知道有like.js可以找到两个图像之间的差异。所以我认为我想做的事情是可能的。
我将如何分析图像的对比度水平?如果在javascript中不可能,其他语言有什么解决方案?
大多数解决方案基于
图像的获取
创建内存画布
使用将图像绘制到画布上drawImage
使用 恢复像素数据getImageData
。你得到一个数组,其中每个像素都由四个数字的序列(RGBA)定义
在这些像素上应用任何算法。确定对比度的算法有很多,每种算法都有优点和缺点,您必须选择适合您需求的算法
第一步的示例(最后一步取决于您的需要):
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;
Pixastic 是一个 JavaScript 库,它允许您使用一点 JavaScript 对图像执行各种操作、过滤器和精美效果。它通过利用 HTML5 Canvas 元素工作
加载图片后,
params.options.contrast
给你对比的价值。
更多信息和演示可在此处获得