前幾天到網上搜了一個用來縮放圖片的程序,結果發現有時候圖片會變的很小,要重新刷新一下才會變成合適的大小,覺得很納悶,也沒找出原因.干脆就又到網上搜了一個,這次是老外寫的一個,感覺代碼少了好多,效果還不錯,代碼如下:
原來的:
function drawImage(imgD, maxW, maxH) {
? if(!imgD)return;
var image = new Image();
? image.src = imgD.src;
? var dW=imgD.width;
? var dH=imgD.height;
? if(dW>maxW||dH>maxH){
? ? var rationW=dW/maxW;
? ? var rationH=dH/maxH;
??? if(rationW<rationH)rationW=rationH;
??? dW=dW/rationW;
??? dH=dH/rationW;
??? if(dW>0&&dH>0){
? ? ? imgD.width=dW;
imgD.height=dH;
? }
}
新搜到的:
function scaleImage(img,v) {
?? if(!img)return;
?? floorSize = .26;
?? ceilingSize = 1.0;
?? v = floorSize + (v * (ceilingSize - floorSize));
?? img.style.width = (v*190)+'px';
}
綜合一下,得到:
function scaleImage(img,maxW,maxH) {
??? if (!img) return;
??? var dW=img.width;
??? var dH=img.height;
??? if(dW>maxW||dH>maxH){
????? var rationW=dW/maxW;
????? var rationH=dH/maxH;
????? if(rationW<rationH)rationW=rationH;
??? ? dW=dW/rationW;
??? ? dH=dH/rationW;
??? ? if(dW>0&&dH>0){
??? ??? ?img.style.width =dW+"px";
??? ??? ?img.style.height =dH+"px";
??? ? }
??? }
}