Javascript降低输入预览图像的分辨率

标签 javascript jquery html image filereader

我得到了这个 javascript 函数,它可以预览输入字段中的输入图像(具有原始大小)。

function readURL(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#blah').attr('src', e.target.result);
        }
        reader.readAsDataURL(input.files[0]);
    }

    $("#imgInp").change(function(){
        readURL(this);
    });
}

以及相关的 HTML:

<form id="form1" runat="server">
    <input type='file' id="imgInp" />
    <img id="blah" src="#" alt="your image" />
</form>

我从这个答案中得到了代码:Preview an image before it is uploaded

我的问题是是否以及如何更改预览图像的分辨率,我只想更改预览图像的分辨率而不是图像本身。

有什么想法吗?

最佳答案

另一种选择是通过 drawing that in canvas 预览图像。在 Canvas 上绘图时,您可以指定自定义分辨率。类似这样的事情

function readURL(input) {

    if (input.files && input.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#blah').attr('src', e.target.result);
            var ctx = $('#myCanvas')[0].getContext("2d");
            ctx.drawImage($('#blah')[0], 0, 0, 240, 297);
        }

        reader.readAsDataURL(input.files[0]);
    }
}

$("#imgInp").change(function(){
    readURL(this);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form1" runat="server">
    <input type='file' id="imgInp" />
    <img id="blah" style="display:none;" />
    <canvas id="myCanvas" width="240" height="297"></canvas>
</form>

关于Javascript降低输入预览图像的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39167546/

相关文章:

Javascript 提示保存到 C# 中的变量,单击相同的按钮

javascript - (使用 JS 过滤)为什么 "#"不起作用,而字母表中的其他所有内容都起作用

javascript - 使用 javascript 和一些跨浏览器支持将内容添加到 svg

html - 我需要帮助来对齐自定义大小的 div

html - :before 空心圆内的圆

javascript - 添加 $ ('input[name="searchsongaddmore[ ]"]' ) 会导致 AJAX 中断

javascript - 使用 Flow Router 检查每个路由中是否存在用户

jquery - HTML 5 文件加载图像作为背景图像

javascript - 如何禁用将十进制数转换为指数?

javascript - 解析js html库中的字符串(语言字符串)