国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

在VB中實(shí)現(xiàn)位圖的透明放置

2019-11-18 17:36:35
字體:
供稿:網(wǎng)友
我們在開發(fā)一個(gè)軟件中,通過掃描儀輸進(jìn)了大量實(shí)景圖片,這些圖片是以位圖格式存儲(chǔ)的,實(shí)際需要將這些圖片透明放置到多彩色背景上,而在我們所使用的VisualBasicforWindows開發(fā)環(huán)境中,只能將WMF格式的矢量圖(通過Image控件裝載)透明放置到多彩色復(fù)雜背景圖上,對(duì)位圖只能象照片一樣將圖片上的每一個(gè)點(diǎn)陣信息貼到復(fù)雜背景上。本文討論的問題就是如何將位圖透明放置到多色彩背景上,用于實(shí)現(xiàn)不規(guī)則前景在復(fù)雜背景上的動(dòng)畫,并給出了源程序。
首先將圖片通過掃描儀輸入到計(jì)算機(jī),以*.BMP格式存盤,然后利用圖象處理軟件對(duì)掃進(jìn)的圖片進(jìn)行加工,加工過程中應(yīng)注意:將來準(zhǔn)備放到復(fù)雜背景上的信息不能是黑色,不準(zhǔn)備放到復(fù)雜背景上的信息要過濾掉,一律置成黑色。只有這樣才能實(shí)現(xiàn)將位圖上所關(guān)注的形狀不規(guī)則信息透明放置到多彩復(fù)雜背景上,且不覆蓋背景。我們主要使用Windows的API函數(shù)BITBLT產(chǎn)生此效果。
基本步驟如下:
(1)首先在Forml上創(chuàng)建3個(gè)Picture控制,Name屬性分別為PicCel(裝載前景位圖)、Picmatte(存放前景位圖的黑白8r=bitblt(ByValpicmatte.hDC,ByVal0,ByVal0,ByValpiccel.width,ByValpiccel.Height,ByValpiccel.hDC,ByVal0,ByVal0,ByValsrccopy)
9Forscanline=0To(piccel.Height-1)
10Do‘取得picmatte上坐標(biāo)為(position,scanline)點(diǎn)的顏色
11currentcolor=getpixel(picmatte.hDC,position,scanline)
12Ifcurrentcolor<>blackThen‘如果該點(diǎn)不為黑色,則置為白色
13retlong=setpixel(picmatte.hDC,position,scanline,white)
14EndIf
15position=position 1
16LoopWhileposition<piccel.Width
17position=0
18Nextscanline‘創(chuàng)建原位圖piccel的反相圖象
19r=bitblt(ByValpiccel.hDC,ByVal0,ByVal0,ByValpiccel.Width,ByValpiccel.Height,ByValpicmatte.hDC,ByVal0,ByVal0,srcinvert)
20r=bitblt(ByValbkgrd.hDC,ByVal10,ByVal10,ByValpiccel.Width-1,ByValpiccel.Height-1,ByValpicmatte.hDC,ByVal0,ByVal0,srcpaint)
21r=bitblt(ByValbkgrd.hDC,ByVal10,ByVal10,ByValpiccel.Width-1,ByValpiccel.Height-1,ByValpiccel.hDC,ByVal0,ByVal0,ByValsrcinvert)
22EndSub
23SubCommand2-Click()
24End
25EndSub
26SubForm-Load()
27picmatte.Width=piccel.Width
28picmatte.Height=piccel.Height
29EndSub->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 同仁县| 缙云县| 合川市| 上饶市| 湖州市| 阿勒泰市| 临沂市| 肇源县| 黄大仙区| 那坡县| 闽侯县| 连江县| 衡水市| 南木林县| 墨竹工卡县| 封丘县| 墨玉县| 吉安县| 吴江市| 肃宁县| 金门县| 台中市| 和田市| 伊春市| 通山县| 剑河县| 金秀| 游戏| 伊通| 察哈| 道孚县| 临颍县| 通榆县| 墨玉县| 江安县| 宁城县| 团风县| 屯昌县| 彭山县| 西平县| 衡阳市|