HTML5图片canvas等比例缩放后上传

该博客介绍了一种使用HTML5处理图片的方法,通过JavaScript实现图片等比例缩放,然后使用canvas将处理后的图片上传。在上传过程中,先使用FileReader API读取图片数据,再利用canvas进行等比例压缩,最后通过Ajax将图片数据发送到服务器进行保存。
摘要由CSDN通过智能技术生成
<html>
<head>
    <title>图片等比例缩放后上传</title>
    <meta name="viewport" content="width=device-width,initial-scale=1 user-scalable=0">
    <script src="/Scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
        $(function () {
            function decodeUnicode(str) {
                return unescape(unescape(str.replace(/\\u/g, '%u')));
            }

            $("#pic").change(function () {
                var _this = $(this)[0], _file = _this.files[0], fileType = _file.type;
                console.log(_file.size);
                console.log(_file.type)
                if (/image\/\w+/.test(fileType)) {
                    var fileReader = new FileReader();
                    fileReader.readAsDataURL(_file);
                    fileReader.onload = function (event) {
                        var result = event.target.result;   //返回的dataURL
                        var image = new Image();
                        image.src = result;
                        image.onload = function () {  //创建一个image对象,给canvas绘制使用
                            var cvs = document.createElement('canvas');
                            var scale = 1;
                            var tt = 1000; //只是示例,可以根据具体的要求去设定
                            if (this.width > tt || this.height > tt) {
                                if (this.width > this.height) {
                                    scale = tt / this.width;
                                } else {
                                    scale = tt / this.height;
                                }
                            }
                            cvs.width = this.width * scale;
                            cvs.height = this.height * scale;     //计算等比缩小后图片宽高
                            var ctx 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smartsmile2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值