第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

第一種方法,只出現(xiàn)圖片的左上角部分

var??canvasWidth?=?1152;
var?canvasHeight?=?768;

var?myCanvas?=?document.getElementById("myCanvas");
var?context;
var?image?=?new?Image();
var?scaleRange?=?document.getElementById("scaleRange");
var?scale?=?scaleRange.value;

window.onload?=?function()?{
myCanvas.width?=?canvasWidth;
myCanvas.height?=?canvasHeight;
if?(myCanvas.getContext)?{
context?=?myCanvas.getContext("2d");
image.src?=?"../../images/img-lg.jpg";
image.onload?=?function()?{
//context.drawImage(image,0,0,canvasWidth,canvasHeight);
drawImageByScale(scale);
}
}

}


function?drawImageByScale(scale){
var?scaleImageWidth?=?canvasWidth?*?scale;
var?scaleImageHeight?=?canvasHeight?*?scale;
var?sx?=?scaleImageWidth/2?-?canvasWidth/2;
var?sy?=?scaleImageHeight/2?-?canvasHeight/2;
context.drawImage(image,sx,sy,canvasWidth,canvasHeight,0,0,canvasWidth,canvasHeight)
}


代碼里用的是老師的圖,用第一種方法實(shí)現(xiàn)的時(shí)候?qū)cale設(shè)置為1.0的時(shí)候只出現(xiàn)了圖片的左上角的部分:

http://img1.sycdn.imooc.com//576509f60001f53b11930638.jpg

我個(gè)人認(rèn)為這種實(shí)現(xiàn)方式是不是邏輯有點(diǎn)問題,因?yàn)閕mage-lg.jpg的圖像素本來就是canvas大小的三倍大,當(dāng)將scale設(shè)置為1.0時(shí),最后一句畫圖的方法是:context.drawImage(image,0,0,canvasWidth,canvasHeight,0,0,canvasWidth,canvasHeight)
}

所以從原圖的0,0位置取得與canvas大小一樣的部分顯示在canvas中,所以出現(xiàn)了上圖的結(jié)果。

不知道理解的對不對,希望大神們可以指點(diǎn)一二~


正在回答

3 回答

老師的第一種方法實(shí)現(xiàn)的有問題,sx和sy不是從原圖上算得,是從放大后的圖片算得,可以照著上一節(jié)ppt里的圖,在紙上畫一畫,就能找到正確的實(shí)現(xiàn)。

不過我比較好奇,老師的代碼不正確,頁面的效果是怎么出來的?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

希望林柚一健康快樂成長

老師用的圖就是放大之后的,所以能正確顯示
2022-09-21 回復(fù) 有任何疑惑可以回復(fù)我~

老師的第一種方法代碼有誤,你可以根據(jù)思路自己編寫出來。

0 回復(fù) 有任何疑惑可以回復(fù)我~

圖片處理思路是這樣的:

1、用context.drawImage( img , x , y , dw , dh)方法繪制圖像

2、讓圖像(放大或縮小后的圖)的中心與畫布中心重疊,即水平垂直居中——設(shè)置的top和left即為y,x。圖像的大小和畫布大小都已知,故很容易得到y(tǒng),x。

然后context.drawImage( image , x , y?, scaleImageWidth, scaleImageHeight);

你這里調(diào)用的方法是錯(cuò)誤的?。?!

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

lwhoho

他問第一種方法,你這個(gè)是第二種方法
2016-06-29 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

第一種方法,只出現(xiàn)圖片的左上角部分

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號