3.3.3 在屏幕上繪制位圖
準(zhǔn)備好Bitmap對(duì)象以后,就可以將它繪制到屏幕上了,這里需要使用Graphics.DrawImage函數(shù),參見(jiàn)程序清單3-10。
程序清單3-10 在屏幕上繪制位圖
private void MyForm_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(myBitmap, 50, 50);
}
這段代碼將一個(gè)位圖圖像的副本繪制在窗體的(50,50)坐標(biāo)處。該坐標(biāo)為圖像左上角所在的位置。
在調(diào)用DrawImage函數(shù)時(shí),還可以利用一些附加功能,所以接下來(lái)我們就看看這些功能。
1. 復(fù)制部分位圖
程序清單3-10中的例子只是簡(jiǎn)單地使用GDI將整個(gè)位圖圖像復(fù)制到窗體的某個(gè)點(diǎn)上。我們還可以只將位圖的一個(gè)子部分顯示到屏幕上。這樣我們利用一個(gè)圖像就能夠創(chuàng)建一個(gè)多幀動(dòng)畫(huà),然后按順序?qū)⒚恳粠瑥?fù)制到屏幕上(如圖3-13所示)。
圖3-13 在一個(gè)單獨(dú)的圖形文件中保存多幀動(dòng)畫(huà)中的每一幀
當(dāng)調(diào)用DrawImage函數(shù)時(shí),如果提供兩個(gè)矩形對(duì)象參數(shù),就可以只復(fù)制原圖像的一個(gè)子部分:第一個(gè)參數(shù)定義了輸出圖像的位置和尺寸,第二個(gè)參數(shù)指定了從原位圖中所要復(fù)制的圖像的位置和尺寸。
在如圖3-13所示的動(dòng)畫(huà)幀中,每個(gè)圖像都是75×75像素。因此我們可以復(fù)制動(dòng)畫(huà)中的每一幀,參見(jiàn)程序清單3-11。