美文网首页
h5 canvas 压缩图片

h5 canvas 压缩图片

作者: code_nerd | 来源:发表于2017-10-27 09:30 被阅读0次
//js代码
        $(".file-upload").on('change',function() {
            var file = $(this)[0].files[0];
            var url = webkitURL.createObjectURL(file);
            var $img = new Image();
            $img.src = url;
            $img.onload = function() {
                //生成比例
                var width = $img.width,
                    height = $img.height,
                    scale = width / height;
                width = parseInt(800);
                height = parseInt(width / scale);

                //生成canvas
                var $canvas = document.createElement("canvas");
                $canvas.width=width;
                $canvas.height=height;
                var ctx = $canvas.getContext('2d');
                ctx.drawImage($img, 0, 0, width, height);
                var dataUrl = $canvas.toDataURL('image/png',0.5);
                var img = dataUrl.replace("data:image/png;base64,", "")
                //发送到服务端
                $.post('uploadbase64img',{imgData : img},function(data){
               
                },'json');
            }
        });

//服务端代码
        $data = $this->getData(['imgData'=>'string']);
        $img = base64_decode($data['imgData']);
        $file_root = "./uploads/";
    
        if($data['assortment']){
            $file_root.=$data['assortment'].'/';
        }
        $dir = $file_root.date('Y').'/'.date('m').'/'.date('d').'/';//存储路径
        if(!is_dir($dir)){
            mkdir($dir,0777,true);
        }
        $key=uniqid();
        $filename=date('YmdHis').'_'.$key.'.png';
        $result = file_put_contents($dir.$filename, $img);//返回的是字节数
        if($result>0){
            $res[0]['name']=$filename;
            $res[0]['path']=$dir.$filename;
            $res[0]['size']=$result;
            $res[0]['extension']='png';
            $res[0]['key']=$key;
            $this->apiSuccess($res);
        }else{
            //获取上传失败后的错误提示
            $this->apiError(['msg'=>'上传失败']);
        }
        exit;

相关文章

  • h5上传图片压缩

    涉及知识点 uniapp项目h5,涉及到前端图片压缩上传 uni.chooseImage() canvas压缩 参...

  • 图片压缩上传

    关键词:h5 FileReader、canvas压缩、多图片上传 一、前言 做过前端的同学都知道,图片上传是我们遇...

  • 使用antd进行头像压缩

    重要的事情说三遍canvas只支持jpg图片压缩,canvas只支持jpg图片压缩,canvas只支持jpg图片压...

  • h5 canvas 压缩图片

  • 前端压缩图片

    原理:图片文件转换成canvas,例用canvas的quality压缩图片,再将canvas转成文件后上传 原文链...

  • elementUi el-upload组件图片上传之前压缩图片大

    将图片导入到canvas画布中,利用画布重绘压缩图片,降低图片质量 压缩方法调用

  • canvas 图片压缩

    描述 使用 Canvas 元素来绘制图形,需要三步 获取 canvas 对象var canvas = docume...

  • 移动端添加图片裁剪的坑

    本文关键:阻止冒泡、canvas压缩、canvas裁剪、生成黑色图片。 最近项目需要在添加图片时实现裁剪功能,虽然...

  • 前端图片压缩Canvas

    ?‍?图片压缩Canvas #关于如何实现压缩 查阅MDN找到的是这个API: HTMLCanvasElement...

  • vue 图片压缩

    vue 图片压缩 上传图片大于100* 1024 的用canvas 来压缩来解决 然后IOS拍照上传会有图片旋转的...

网友评论

      本文标题:h5 canvas 压缩图片

      本文链接:https://www.haomeiwen.com/subject/ggqrpxtx.html