如何在边缘浏览器中调整图像亮度
How to adjust the image brightness in the edge browser
我有一个应用程序并使用以下代码来调整图像亮度,它适用于 Chrome、FireFox 和基于 Chromium 的 Edge 版本,但是,它不适用于 EdgeHTML 版本的 Edge .
function takepicture() {
var context = canvas.getContext('2d');
var b = document.getElementById('txtBrightness').value;
if (width && height) {
canvas.width = width;
canvas.height = height;
context.filter = 'brightness(' + b + '%)';
context.drawImage(video, 0, 0, width, height);
var data = canvas.toDataURL();
//alert(data);
document.getElementById('Image').value = data;
//$("#Image").val(data);
$("#form1").submit();
} else {
clearimage();
}
}
从this link得知,过滤方法不支持EdgeHtml版本的Edge。是否有使上下文过滤器与 Edge 浏览器的 EdgeHTML 版本一起工作的解决方法?
您可以尝试使用 Konva 插件对图像应用滤镜。
示例代码如下(图片路径改成你自己的,我用的是Microsoft Edge 44.18362.449.0):
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://unpkg.com/konva@4.1.3/konva.min.js"></script>
<meta charset="utf-8" />
<title>Konva Brighten Image Demo</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
background-color: #f0f0f0;
}
#slider {
position: absolute;
top: 20px;
left: 20px;
}
</style>
</head>
<body>
<div id="container"></div><br />
<input id="slider" type="range" min="-1" max="1" step="0.05" value="0" /><br />
<script>
function loadImages(sources, callback) {
var images = {};
var loadedImages = 0;
var numImages = 0;
for (var src in sources) {
numImages++;
}
for (var src in sources) {
images[src] = new Image();
images[src].onload = function () {
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = sources[src];
}
}
function buildStage(images) {
var stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight
});
var layer = new Konva.Layer();
var lion = new Konva.Image({
image: images.lion,
x: 80,
y: 30,
draggable: true
});
lion.cache();
lion.filters([Konva.Filters.Brighten]);
layer.add(lion);
stage.add(layer);
var slider = document.getElementById('slider');
slider.oninput = function () {
lion.brightness(slider.value);
layer.batchDraw();
};
}
var sources = {
lion: '/images/Image1.jpg'
};
loadImages(sources, buildStage);
</script>
输出如下:
我有一个应用程序并使用以下代码来调整图像亮度,它适用于 Chrome、FireFox 和基于 Chromium 的 Edge 版本,但是,它不适用于 EdgeHTML 版本的 Edge .
function takepicture() {
var context = canvas.getContext('2d');
var b = document.getElementById('txtBrightness').value;
if (width && height) {
canvas.width = width;
canvas.height = height;
context.filter = 'brightness(' + b + '%)';
context.drawImage(video, 0, 0, width, height);
var data = canvas.toDataURL();
//alert(data);
document.getElementById('Image').value = data;
//$("#Image").val(data);
$("#form1").submit();
} else {
clearimage();
}
}
从this link得知,过滤方法不支持EdgeHtml版本的Edge。是否有使上下文过滤器与 Edge 浏览器的 EdgeHTML 版本一起工作的解决方法?
您可以尝试使用 Konva 插件对图像应用滤镜。
示例代码如下(图片路径改成你自己的,我用的是Microsoft Edge 44.18362.449.0):
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://unpkg.com/konva@4.1.3/konva.min.js"></script>
<meta charset="utf-8" />
<title>Konva Brighten Image Demo</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
background-color: #f0f0f0;
}
#slider {
position: absolute;
top: 20px;
left: 20px;
}
</style>
</head>
<body>
<div id="container"></div><br />
<input id="slider" type="range" min="-1" max="1" step="0.05" value="0" /><br />
<script>
function loadImages(sources, callback) {
var images = {};
var loadedImages = 0;
var numImages = 0;
for (var src in sources) {
numImages++;
}
for (var src in sources) {
images[src] = new Image();
images[src].onload = function () {
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = sources[src];
}
}
function buildStage(images) {
var stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight
});
var layer = new Konva.Layer();
var lion = new Konva.Image({
image: images.lion,
x: 80,
y: 30,
draggable: true
});
lion.cache();
lion.filters([Konva.Filters.Brighten]);
layer.add(lion);
stage.add(layer);
var slider = document.getElementById('slider');
slider.oninput = function () {
lion.brightness(slider.value);
layer.batchDraw();
};
}
var sources = {
lion: '/images/Image1.jpg'
};
loadImages(sources, buildStage);
</script>
输出如下: