• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    透明方式疊加圖象

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 22次 | 進入軟件測試論壇討論

    領測軟件測試網     透明疊加方式是圖象處理中常用的一種處理方式,在這種處理方式中,一幅圖片疊加到另
    一幅圖片上,但是這幅圖象不是完全將原來的圖象覆蓋,而是能夠部分的透過疊加的圖象顯示
    出來,下面我就介紹如何在VB中編程實現這樣的功能。
        首先在建立兩個大小相等的圖象文件,將它們保存成BMP文件,VB5以上的版本支
    持JPEG顯示,也可以保存為Jpg文件。在Form中加入兩個PictureBox控件,將它們的大小設置成
    同圖象文件相同的大小。注意這兩個PictureBox控件不要相互重疊,也不要和Form中的其它控件
    產生重疊。將兩幅圖象分別加入到兩個PictureBox控件中。然后在Form中加入一個CommandButton
    控件。最后在Form的代碼窗口中加入以下代碼:

    Private Type LOGBRUSH
            lbStyle As Long
            lbColor As Long
            lbHatch As Long
    End Type
    Private Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End Type

    Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal _
            hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) _
            As Long
    Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc _
            As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, _
            ByVal hObject As Long) As Long
    Private Declare Function FillRect Lib "user32" (ByVal hdc As Long, _
            lpRect As RECT, ByVal hBrush As Long) As Long
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
            ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
            ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc _
            As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush _
            As LOGBRUSH) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

    Const SRCPAINT = &HEE0086
    Const SRCAND = &H8800C6
    Const BS_SOLID = 0
    Const gColor = &HFFFFFF

    Private Sub Command1_Click()
        Dim pDstDC As Long
        Dim dcCompatible As Long
        Dim pBitmapOld As Long
        Dim bm As Long
        Dim rectTemp As RECT
        Dim lBrush As Long
        Dim tLog As LOGBRUSH
         
        dcCompatible = CreateCompatibleDC(Picture1.hdc)
         
        bm = CreateCompatibleBitmap(Picture1.hdc, Picture1.Width \ 15, _
            Picture1.Height \ 15)
         
        pBitmapOld = SelectObject(dcCompatible, bm)
        rectTemp.Left = 0: rectTemp.Top = 0
        rectTemp.Right = Picture1.Width \ 15: rectTemp.Bottom = _
            Picture1.Height \ 15
        tLog.lbColor = gColor
        tLog.lbStyle = BS_SOLID
        tLog.lbHatch = 0
        lBrush = CreateBrushIndirect(tLog)
        FillRect dcCompatible, rectTemp, lBrush
        BitBlt Picture1.hdc, 0, 0, Picture1.Width \ 15, _
            Picture1.Height \ 15, dcCompatible, 0, 0, SRCAND
        SelectObject dcCompatible, pBitmapOld

        BitBlt Picture1.hdc, 0, 0, Picture1.Width \ 15, _
            Picture1.Height \ 15, Picture2.hdc, 0, 0, SRCPAINT
        DeleteDC dcCompatible
    End Sub
        運行程序,點擊Command1,你就可以看到Picture2上的圖象疊加到了Picture1上面了。改變上面
    源程序中的 Const gColor = &HFFFFFF 一句中的gColor的值(在0到&HFFFFFFFF間變動),就可以
    使圖象的疊加產生不同的透明效果。
        以上程序在Win98、VB6.0下運行通過。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>