如何用VB6創(chuàng)建透明圖象

字號(hào):

透過(guò)前面的圖象看到背景圖象,稱前面的圖象為透明圖象,我們見(jiàn)過(guò)很多程序和電視節(jié)目中都有使用透明圖象,而且大家一定會(huì)為圖象的透明而稱奇。究竟透明圖象是如何做出來(lái)的呢?下面我們將來(lái)探討這種透明圖象的制作方法。
    創(chuàng)建透明圖象的五個(gè)必須的步驟:
    準(zhǔn)備兩個(gè)位圖文件,一個(gè)作背景,一個(gè)是將要成為透明圖象的源位圖。
    1、 取得源位圖的長(zhǎng)、寬數(shù)據(jù),依此數(shù)據(jù)保存一塊和源位圖一樣大小的背景位圖,源位圖將要在這塊背景位圖上繪制。通過(guò)用白色像素顯示位圖的透明區(qū)域,黑色像素顯示位圖的不透明區(qū)域,創(chuàng)建決定位圖透明的單色掩碼。
    2、單色掩碼像素與所用的背景位圖進(jìn)行二進(jìn)制“與”(and)位操作,不透明的區(qū)域,背景顯示黑色。
    3、用第一步所做的單色掩碼建立一個(gè)反向拷貝,再用這個(gè)反向拷貝與所用的源位圖進(jìn)行二進(jìn)制“與”(and)位操作,源位圖透明的區(qū)域?qū)@示黑色
    4、用第二步修改過(guò)的背景和第三步修改的源位圖進(jìn)行二進(jìn)制“異或”(Xor)位操作,這時(shí)可以透過(guò)透明位圖看到背景。
    5、把結(jié)果位圖復(fù)制給背景
    應(yīng)用實(shí)例:
    創(chuàng)建包含一個(gè) CommandButton 控件和兩個(gè)PictureBox控件的 窗體Form1。創(chuàng)建一個(gè)模塊(在 "工程”菜單中單擊“添加模塊”)。
    給窗體增加下列控件,設(shè)置相關(guān)的屬性值:
    控件 Name Property Settings
    -----------------------------------------------------------------
    PictureBox pictSource Picture ="C:\Flower_Vine.bmp"
    PictureBox pictDest Picture ="C:\Stones_Blue.bmp"
    Command button Command1 Caption ="透明圖象"
    ---- 將下面的代碼粘貼到窗體的聲明部分中,
    ---- Option Explicit ’’ 這段代碼調(diào)用過(guò)程Transparent()復(fù)制源位圖到目標(biāo)(背景)picturebox控件, ’’ 并將其變成透明,使人們可以看到后面的背景圖象。
    Sub command1_Click()
    Call Transparent(PictSource.Picture.Handle, PictDest,
    10, 10, QBColor(15))
    End Sub
    ---- 將下面的代碼粘貼到模塊的聲明部分中,
    Option Explicit
    ---- ’’ 由于要讀取位圖的基本信息,所以首先要定義一個(gè)BITMAP結(jié)構(gòu)的變量,然后
    ---- ’’ 利用這一變量來(lái)接受位圖的基本信息。
    ’’
    Type Bitmap
    Type As Long ’’ 位圖類(lèi)型
    Width As Long ’’寬度
    Height As Long ’’高度
    WidthBytes As Long ’’多少二進(jìn)制位構(gòu)成一個(gè)存儲(chǔ)單位
    Planes As Integer ’’調(diào)色板數(shù)
    BitsPixel As Integer ’’每一個(gè)Pixel所占用的二進(jìn)制位數(shù)
    Bits As Long ’’二進(jìn)制位數(shù)據(jù)的起始位置