PaintPicture是VB4新提供的圖形圖像處理方法,它的基本功能是圖像塊傳輸,在以前的VB版本中要產生塊傳輸效果,需采用Win?dowsGDI中的塊傳輸函數BitBltAPI調用。PaintPicture正是VB4中用來代替BitBltAPI調用的簡單而方便的方法。它能快速地將兩幅位圖進行合並;能將位圖的全部或某一部分快速剪切並粘貼到其它地方;並能將位圖自動延伸或壓縮以適應新的環境;能在屏幕上不同位置之間、屏幕與內存之間傳遞位圖;它采用32位三元光柵操作代碼(ROP),在源位圖、選定的刷子位圖和目標位圖之間進行顏色組合,生成目標位圖中的最終顏色,它將13個常用的ROPR操作以內部常量形式給出,不需任何聲明,不用理會其32位參數值。
基本格式:
Object.PaintPicturepicture,x1,y1,width1,height1,
x2,y2,Width2,height2,opcode
其中Object可以為窗體或PictureBox控件
Picture可以為BMP、Dib、Ico、Wmf、Emf等格式的圖片
X1、Y1、Width1、height1為目標位圖的參數
X2、Y2、Width2、height2為源位圖的參數
opcode表示源圖與目標位圖(或刷子位圖)的組合關系,該參數與BitBlt中dwRop參數含義相同。VB4為opcode定義了13個內部常量:
vbDstInvert:目標位圖取反
vbSrcCopy:源位圖直接覆蓋目標位圖
vbSrcAnd:源位圖與目標位圖進行“與”操作
bSrcInvert:源位圖與目標位圖進行“異或”操作
vbSrcPaint:源位圖與目標位圖進行“或”操作
vbNotSrcCopy:源位圖取反
vbSrcErase:目標位圖取反,再與源位圖進行“與”操作
vbNotSrcErase:源位圖與目標位圖進行“或非”操作
vbMergePaint:源位圖取反,再與目標位圖進行“或”操作
此外,與刷子位圖有關的常量是vbMergeCopy、vbPat?Copy、vbPatInvert和vbPatPaint,這13個內部常量可以在菜單View/ObjectBrowser/VB-VisualBasicobjectsandproce?dures/RasterOpConstants中列出。
巧用PainPicture方法,結合控件屬性,可以方便地產生許多常見的圖像切換效果,如我們在多媒體作品及電視中常見的圖像旋轉引入、翻轉、飛入、滑入、彈出、淡入淡出、隱現等動畫效果。