资讯专栏INFORMATION COLUMN

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

huaixiaoz / 761人阅读

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

//------------ 对图片进行压缩 
    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

发表评论

0条评论

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