【问题标题】:How to adjust the image brightness in the edge browser如何在边缘浏览器中调整图像亮度
【发布时间】:2020-05-19 23:59:54
【问题描述】:

我有一个应用程序并使用以下代码来调整图像亮度,它适用于 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。是否有使上下文过滤器与 EdgeHTML 版本的 Edge 浏览器一起使用的解决方法?

【问题讨论】:

    标签: javascript microsoft-edge


    【解决方案1】:

    您可以尝试使用 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>
    

    输出如下:

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多