//------------ 對圖片進行壓縮 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結合繪製正方形圖片css
htmlhtml
<div class="l-search-img"> <img src="" id="imageSearchSrc"> </div>
cssweb
.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%) }
jscanvas
// 對圖片進行繪製,在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); } }