资讯专栏INFORMATION COLUMN

canvas压缩图片,canvas,css结合绘制正方形图片

huaixiaoz / 742人阅读

摘要:对图片进行压缩新建一个标签还没嵌入节点压缩后图片的大小压缩完成渲染。。。。

//------------ 对图片进行压缩 
    function compress(imgPath) {
        var image = new Image();
        //新建一个img标签(还没嵌入DOM节点) 
        image.src = imgPath;
        image.onload = function() {
            var canvas = document.createElement("canvas");
            var    context = canvas.getContext("2d");
            var    imageWidth = image.width / 3;
                //压缩后图片的大小 
            var    imageHeight = image.height / 3;
            var data = "";
            canvas.width = imageWidth; 
            canvas.height = imageHeight;
            context.drawImage(image, 0, 0, imageWidth, imageHeight);
            data = canvas.toDataURL("image/jpeg")
            //压缩完成 
            $(".srcDiscernImg").attr("src", data);
            console.log("渲染。。。。");
        }
    }

//-------------canvas,css结合绘制正方形图片

html

        

css

    .proimg-search-top .l-search-img{ width:140px; height:140px;margin-bottom: 10px;position:relative;background-color:#fff; }
    .proimg-search-top .l-search-img img{ position:absolute;left:50%;top:50%; -moz-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%) }
    

js

 // 对图片进行绘制,在div里显示成正方形
var searchImgPath = "拿到图片地址";
var searchImgSize ="140";//要生成的正方形尺寸
compress(searchImgPath,searchImgSize);

    // 对图片进行绘制,在div里显示成正方形
function compress(imgPath,maxSize) {
    var image = new Image();
    //新建一个img标签(还没嵌入DOM节点)
    image.src = imgPath;
    image.onload = function() {
        var canvas = document.createElement("canvas");
        var context = canvas.getContext("2d");
        var imageWidth = image.width;
        //压缩后图片的大小
        var imageHeight = image.height;        
       if(imageWidth > imageHeight){//横的图片
            var imgSize = imageWidth/imageHeight;
            imageWidth = maxSize;
            imageHeight = imageWidth / imgSize;

        }else if(imageWidth < imageHeight){//竖的图片
            var imgSize = imageWidth/imageHeight;
            imageHeight = maxSize;
            imageWidth = imageHeight * imgSize;
        } else{  //如果为正方形
           imageWidth = image.width;
           imageHeight = image.height;
       }
        var data = "";
        canvas.width = imageWidth;
        canvas.height = imageHeight;
        context.drawImage(image, 0, 0, imageWidth, imageHeight);
        data = canvas.toDataURL("image/jpeg")
        //压缩完成
        $("#imageSearchSrc").attr("src", data);

    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/114400.html

相关文章

  • canvas压缩图片,canvascss结合绘制方形图片

    摘要:对图片进行压缩新建一个标签还没嵌入节点压缩后图片的大小压缩完成渲染。。。。 //------------ 对图片进行压缩 function compress(imgPath) { var image = new Image(); //新建一个img标签(还没嵌入DOM节点) image.src = imgPath; ...

    Kerr1Gan 评论0 收藏0
  • canvas压缩图片,canvascss结合绘制方形图片

    摘要:对图片进行压缩新建一个标签还没嵌入节点压缩后图片的大小压缩完成渲染。。。。 //------------ 对图片进行压缩 function compress(imgPath) { var image = new Image(); //新建一个img标签(还没嵌入DOM节点) image.src = imgPath; ...

    avwu 评论0 收藏0
  • JavaScript中的图片处理与合成(一)

    摘要:中的图片处理与合成一引言图片处理现在已经成为了我们生活中的刚需,想必大家也经常有这方面的需求。实际前端业务中,也经常会有很多的项目需要用到图片加工和处理。 JavaScript中的图片处理与合成(一) 引言: 图片处理现在已经成为了我们生活中的刚需,想必大家也经常有这方面的需求。实际前端业务中,也经常会有很多的项目需要用到图片加工和处理。由于过去一段时间公司的业务需求,让我在这方面积累...

    Charles 评论0 收藏0
  • 无需Flash实现图片裁剪——HTML5中级进阶

    摘要:需求就是那么简单,在浏览器里裁剪图片并上传到服务器。原图片对象上传裁剪后的对象初始化图片预览根据裁剪参数绘制转对象以下将对每个环节详解。或者根据获取裁剪信息包括旋转和缩放用进行手动绘制。 前言 图片裁剪上传,不仅是一个很贴合用户体验的功能,还能够统一特定图片尺寸,优化网站排版,一箭双雕。 需求就是那么简单,在浏览器里裁剪图片并上传到服务器。 我第一个想到的方法就是,将图片和裁剪参数(x...

    JerryC 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<