1. 程式人生 > >canvas,html2canvas等合成圖片不清晰問題

canvas,html2canvas等合成圖片不清晰問題

obj att data web 沒有 element 放大 tpi child

function pxRa(cxt) {

var backingStore = context.backingStorePixelRatio ||

context.webkitBackingStorePixelRatio ||

context.mozBackingStorePixelRatio ||

context.msBackingStorePixelRatio ||

context.oBackingStorePixelRatio ||

context.backingStorePixelRatio || 1;

return (window.devicePixelRatio || 1) / backingStore;

};

此方法是獲取設備與canvas一個適合的比例,具體也不知道怎麽表達,劇烈來說,設計稿是640,放在iphone 5、6 ,這個值就是2, 電腦滿屏就是1, 6plus 3 等等;

根據這個值去對canvas 進行 方法,縮大放小。

這是img的 圖,

技術分享

下面這是 canvas 畫出來的圖

技術分享

是不是看上去很清晰,跟原圖沒有什麽區別區別

代碼 合圖 如下:

var w = $(".container").width();

var h = $(".container").height();

var canvas = document.createElement("canvas");

var context = canvas.getContext("2d");

var ra=getPixelRatio(context);

console.log(ra);

canvas.width = w * ra;

canvas.height = h * ra;

<!-- canvas.style.width = w + "px"; -->

<!-- canvas.style.height = h + "px"; -->

//然後將畫布縮放,將圖像放大兩倍畫到畫布上

context.scale(2, 2);

html2canvas(obj).then(function(canvas) {

var copyStr = canvas.toDataURL("image/png", 0.92);

$(‘.complex-img‘).attr(‘src‘, copyStr);

<!-- document.body.appendChild(img); -->

});

canvas,html2canvas等合成圖片不清晰問題