javascript - 处理要显示的图像

标签 javascript html

我想检查图像的大小,然后通过定义设置大小(w*h)将图像显示为裁剪后的版本。

我该怎么做?

这是我试过的代码:

 var filesSelected = document.getElementById("inputFileToLoad").files;
    if (filesSelected.length > 0)
    {
        var fileToLoad = filesSelected[0];

        if (fileToLoad.type.match("image.*"))
        {
            var fileReader = new FileReader();
            fileReader.onload = function(fileLoadedEvent)
            {
                var imageLoaded = document.createElement("img");
                imageLoaded.src = fileLoadedEvent.target.result;
                document.body.appendChild(imageLoaded);
            };
            fileReader.readAsDataURL(fileToLoad);
        }
    }

最佳答案

<input type="file" onchange="handleFiles(this.files[0])" id="inputFileToLoad">
<canvas id="canvas"></canvas>

function handleFiles(fileToLoad) {
if (fileToLoad.type.match("image.*")) {
    var fileReader = new FileReader();
    fileReader.onload = function (fileLoadedEvent) {
        var img = new Image();
        img.onload = function () {
            var canvas = document.getElementById("canvas");

            canvas.width = img.width;
            canvas.height = img.height;

            var ctx = canvas.getContext('2d');

            ctx.drawImage(img, 0, 0);

            // cropped = ctx.getImageData(x, y, crop_width, crop_height);
            cropped = ctx.getImageData(500, 500, 200, 200);

            // clearing is optional ... new img is over the old one
            ctx.clearRect(0, 0, canvas.width, canvas.height);

            // re-size canvas to croped img size
            canvas.width = 200;
            canvas.height = 200;

            ctx.putImageData(cropped, 0, 0)
        };


        img.src = fileLoadedEvent.target.result;
    };
    fileReader.readAsDataURL(fileToLoad);
}

关于javascript - 处理要显示的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56066129/

相关文章:

javascript - 同步 xm​​lHttpRequest 调用的回调何时执行?

html - 如何正确 float 列表

html - 更改背景图像不透明度

javascript - DOM 窗口尺寸何时确定?

javascript - 如何在网站中显示 Kibana 可视化仪表板?

html - 当应用相同的宽度和高度时,这个 CSS 如何产生一个圆圈?

javascript - 弹出不覆盖整个页面的背景色

Php 搜索 100% 不工作

javascript - 以编程方式移动 Gridster 小部件

javascript - 需要帮助将 js 函数(限制无效字符)限制为特定的输入类型