VB環(huán)境下壓縮數(shù)據(jù)流播放技術(shù)(2)

字號(hào):

3.4.MPEG數(shù)據(jù)流的縮放顯示
    放大或縮小MPEG圖像是各種多媒體播放軟件中常用的圖像顯示處理手段。VisualBasic中對(duì)于靜態(tài)圖片進(jìn)行縮放處理可以使用Image控件,將控件的Stretch屬性設(shè)為True,則裝入的圖片會(huì)改變比例適應(yīng)Image控件的范圍,因此對(duì)圖片的縮放處理變成對(duì)Image控件的Height、Width屬性值的大小變化。由于控件的尺寸發(fā)生變化,顯示的點(diǎn)距不能改變,造成顯示點(diǎn)的像素點(diǎn)與圖片不能完全一一對(duì)應(yīng),顯示質(zhì)量明顯變差。只有Image控件才能對(duì)圖片進(jìn)行縮放,如果PictureBox控件不足以顯示整幅圖象,則裁剪圖象以適應(yīng)控件的大小。要想實(shí)現(xiàn)用PictureBox控件實(shí)現(xiàn)對(duì)輸出MPEG圖像的縮放,必須改變MPEG數(shù)據(jù)流的輸出比例,在調(diào)節(jié)PictureBox控件的尺寸去適應(yīng)輸出的MPEG圖像。實(shí)際上,在上面的第3小節(jié)里,為了顯示輸出MPEG圖像已經(jīng)這樣做了。只不過用的是讀取出的MPEG圖像OldWidth、 OldHeight,下面給出一個(gè)以原來的1/2大小輸出MPEG圖像的例子。
    pVW.width = OldWidth / 2
    pVW.Height = OldHeight / 2
    picTV.Left = 135
    picTV.Top = 135
    picTV.width = pVW.width * 15
    picTV.Height = pVW.Height * 15
    pVW.Owner = picTV.hWnd
    在放大或縮小MPEG圖像的尺寸時(shí)要注意保持Width、Height的比例一致,以免輸出的圖像變形。