亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gif.cls

?? 條形碼的設計與打印
?? CLS
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "GIF"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'這個類用于將位圖保存為GIF格式

Option Explicit

'BITMAP元素
Private Type RGBTRIPLE
     rgbRed As Byte
     rgbGreen As Byte
     rgbBlue As Byte
End Type

Private Type RGBQUAD
     rgbBlue As Byte
     rgbGreen As Byte
     rgbRed As Byte
     rgbReserved As Byte
End Type

Private Type BITMAPINFOHEADER '40 bytes
     biSize As Long
     biWidth As Long
     biHeight As Long
     biPlanes As Integer
     biBitCount As Integer
     biCompression As Long
     biSizeImage As Long
     biXPelsPerMeter As Long
     biYPelsPerMeter As Long
     biClrUsed As Long
     biClrImportant As Long
End Type

Private Type BITMAPINFO256
     bmiHeader As BITMAPINFOHEADER
     bmiColors(0 To 255) As RGBQUAD
End Type

Private Type BITMAP '14 bytes
   bmType As Long
   bmWidth As Long
   bmHeight As Long
   bmWidthBytes As Long
   bmPlanes As Integer
   bmBitsPixel As Integer
   bmBits As Long
End Type

Private Const BI_RGB = 0&

'GIF元素

Private Type GifScreenDescriptor
     logical_screen_width As Integer
     logical_screen_height As Integer
     Flags As Byte
     background_color_index As Byte
     pixel_aspect_ratio As Byte
End Type

Private Type GifImageDescriptor
     Left As Integer
     Top As Integer
     Width As Integer
     Height As Integer
     Format As Byte 'ImageFormat
End Type

Private Type CONTROLBLOCK
    Blocksize As Byte
    Flags As Byte
    Delay As Integer
    TransParent_Color As Byte
    Terminator As Byte
End Type
Private Const GIF89a = "GIF89a"
Private Const CtrlIntro As Byte = &H21
Private Const CtrlLabel As Byte = &HF9

Const GIF87a = "GIF87a"

Const GifTerminator As Byte = &H3B
Const ImageSeparator As Byte = &H2C
Const CHAR_BIT = 8
Const CodeSize As Byte = 9
Const ClearCode = 256
Const EndCode  As Integer = 257
Const FirstCode = 258
Const LastCode As Integer = 511
Const MAX_CODE = LastCode - FirstCode

Private colTable As New Collection
Private fn As Integer
Private gifPalette(0 To 255) As RGBTRIPLE
Private bit_position As Integer
Private code_count As Integer
Private data_buffer(255) As Byte
Private aPower2(31) As Long
Private picWidth As Long, picHeight As Long
Private IsBusy As Boolean
Public Event Progress(ByVal Percents As Integer)

Private Declare Function CreateDCAsNull Lib "gdi32" Alias "CreateDCA" ( _
                                    ByVal lpDriverName As String, _
                                    lpDeviceName As Any, _
                                    lpOutput As Any, _
                                    lpInitData As Any) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" ( _
                                    ByVal hDc As Long) As Long
Private Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" ( _
                                    ByVal hObject As Long, _
                                    ByVal nCount As Long, _
                                    lpObject As Any) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hDc As Long, _
                                    ByVal hObject 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 DeleteDC Lib "gdi32" (ByVal hDc As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" ( _
                                    ByVal hObject As Long) As Long
Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, _
                                    ByVal hBitmap As Long, _
                                    ByVal nStartScan As Long, _
                                    ByVal nNumScans As Long, _
                                    lpBits As Any, _
                                    lpBI As BITMAPINFO256, _
                                    ByVal wUsage As Long) As Long
Private Declare Function CreateDIBSection256 Lib "gdi32" _
                                    Alias "CreateDIBSection" ( _
                                    ByVal hDc As Long, _
                                    pBitmapInfo As BITMAPINFO256, _
                                    ByVal un As Long, _
                                    lplpVoid As Long, _
                                    ByVal handle As Long, _
                                    ByVal dw As Long) As Long
Private Const DIB_RGB_COLORS = 0

Private Declare Function GetFileAttributes Lib "kernel32" _
                                    Alias "GetFileAttributesA" ( _
                                    ByVal lpFileName As String) As Long


Public Function SaveGIF(ByVal pic As StdPicture, _
        ByVal sFileName As String, _
        Optional hDc As Long = 0, _
        Optional UseTrans As Boolean = False, _
        Optional ByVal TransColor As Long = 0) _
        As Boolean

    '本函數用以將位圖保存為GIF格式
    'useTrans函數用一指定是否保存為透明的GIS格式
       
    If IsBusy Then Exit Function
    Dim scr As GifScreenDescriptor, im As GifImageDescriptor
    Dim bi As BITMAPINFO256, bm As BITMAP
    Dim hDCScn As Long, OldObj As Long, Src_hDc As Long
    Dim hDib256 As Long, hDC256 As Long, OldObj256 As Long
    Dim buf() As Byte, data As Byte, TransIndex As Byte
    Dim i As Long, j As Long, clr As Long
    Dim bFound As Boolean
    Dim intCode As Integer, nCount  As Integer
    Dim sPrefix As String, sByte As String
    Dim tempPic As StdPicture
    IsBusy = True
    '獲取圖像大小,開辟緩沖區(qū)
    Call GetObjectAPI(pic, Len(bm), bm)
    picWidth = bm.bmWidth
    picHeight = bm.bmHeight
    ReDim buf(CLng(((picWidth + 3) \ 4) * 4), picHeight) As Byte
    '獲取DC
    hDCScn = CreateDCAsNull("DISPLAY", ByVal 0&, ByVal 0&, ByVal 0&)
    hDC256 = CreateCompatibleDC(hDCScn)
    If hDc = 0 Then
       Src_hDc = CreateCompatibleDC(hDCScn)
       OldObj = SelectObject(Src_hDc, pic)
    Else
       Src_hDc = hDc
    End If
    DeleteDC hDCScn

    'GIF格式只允許最多256色,因此將色深降低到256色
    If bm.bmBitsPixel <> 8 Then hDib256 = CreateDib256(hDC256, bi)
    If hDib256 <> 0 Then
        OldObj256 = SelectObject(hDC256, hDib256)
        Call BitBlt(hDC256, 0, 0, picWidth, picHeight, Src_hDc, 0, 0, vbSrcCopy)
        For i = 0 To picHeight - 1
            Call GetDIBits(hDC256, hDib256, i, 1, _
                buf(0, picHeight - i), bi, 0)
        Next
    Else
        '文件頭
        With bi.bmiHeader
            .biSize = Len(bi.bmiHeader)
            .biWidth = picWidth
            .biHeight = picHeight
            .biPlanes = 1
            .biBitCount = 8
            .biCompression = BI_RGB
        End With
        For i = 0 To picHeight - 1
            Call GetDIBits(Src_hDc, pic, i, 1, _
                buf(0, picHeight - i), bi, 0)
        Next
    End If
    
    '設置gif文件信息
    For i = 0 To 255 'RGB Patterns
        gifPalette(i).rgbBlue = bi.bmiColors(i).rgbBlue
        gifPalette(i).rgbGreen = bi.bmiColors(i).rgbGreen
        gifPalette(i).rgbRed = bi.bmiColors(i).rgbRed
        If Not bFound Then
            clr = RGB(gifPalette(i).rgbRed, gifPalette(i).rgbGreen, _
                gifPalette(i).rgbBlue)
            If clr = TransColor Then
                TransIndex = i: bFound = True
            End If
        End If
    Next

    scr.background_color_index = 0
    scr.Flags = &HF7
    scr.pixel_aspect_ratio = 0
    
    im.Format = &H7 '非交錯
    im.Height = picHeight
    im.Width = picWidth
    '若文件存在則覆蓋
    If FileExists(sFileName) Then Kill sFileName

    fn = FreeFile
    Open sFileName For Binary As fn
    '寫GIF文件頭
    If UseTrans = True Then
        Put #fn, , GIF89a
    Else
        Put #fn, , GIF87a
    End If
    Put #fn, , scr
    Put #fn, , gifPalette
     
    If UseTrans = True Then
       Put #fn, , CtrlIntro
       Put #fn, , CtrlLabel
       Dim cb As CONTROLBLOCK
       cb.Blocksize = 4 'Always 4
       cb.Flags = 9 'Packed = 00001001
       cb.Delay = 0
       cb.TransParent_Color = TransIndex
       cb.Terminator = 0
       Put #fn, , cb
    End If
    Put #fn, , ImageSeparator
    Put #fn, , im
    data = CodeSize - 1
    Put #fn, , data
    data_buffer(0) = 0
    bit_position = CHAR_BIT
    '處理像素數據,使用LZW壓縮
    For i = 1 To picHeight
        Reinitialize
        sPrefix = ""
        intCode = buf(0, i)
        On Error Resume Next
        For j = 1 To picWidth - 1
            sByte = MyFormat(buf(j, i))
            sPrefix = sPrefix & sByte
            intCode = colTable(sPrefix)
            If Err <> 0 Then
                nCount = colTable.count
                If nCount = MAX_CODE Then Reinitialize
                colTable.Add nCount + FirstCode, sPrefix
                OutputBits intCode, CodeSize
                sPrefix = sByte
                intCode = buf(j, i)
                Err.Clear
            End If
        Next
        OutputBits intCode, CodeSize
        If i Mod 10 = 0 Then
            RaiseEvent Progress(i * 100 / picHeight)
            DoEvents
        End If
    Next
     
    OutputCode (EndCode)
    For i = 0 To data_buffer(0)
         Put #fn, , data_buffer(i)
    Next
    data = 0
    Put #fn, , data
    Put #fn, , GifTerminator
    Close fn
    Erase buf
    If hDc = 0 Then
        SelectObject Src_hDc, OldObj
        DeleteDC Src_hDc
    End If
    SelectObject hDC256, OldObj256
    DeleteObject hDib256
    DeleteDC hDC256
    SaveGIF = True
    IsBusy = False
End Function

Private Sub OutputBits(Value As Integer, count As Integer)

    '將壓縮后的數據存儲于緩沖區(qū)中

    Dim i As Integer, bit As Integer
    Do While i < count
        If bit_position = CHAR_BIT Then
            If data_buffer(0) = 255 Then
                Put #fn, , data_buffer
                data_buffer(0) = 1
            Else
                data_buffer(0) = data_buffer(0) + 1
            End If
            data_buffer(data_buffer(0)) = 0
            bit_position = 0
        End If
        bit = Sgn(Power2(i) And Value)
        If bit > 0 Then data_buffer(data_buffer(0)) = Power2(bit_position) Or data_buffer(data_buffer(0))
        i = i + 1: bit_position = bit_position + 1
    Loop
End Sub

Private Sub OutputCode(code As Integer)
    code_count = code_count + 1
    If code_count > LastCode Then
        code_count = FirstCode
        Call OutputBits(ClearCode, CodeSize)
        ClearTable
    End If
    Call OutputBits(code, CodeSize)
End Sub

Private Sub ClearTable()
   Set colTable = Nothing
   Set colTable = New Collection
End Sub

Private Sub Reinitialize()
   ClearTable
   Call OutputBits(ClearCode, CodeSize)
End Sub

Private Function FileExists(ByVal strPathName As String) As Boolean
   Dim af As Long
   af = GetFileAttributes(strPathName)
   FileExists = (af <> -1)
End Function

Private Function Power2(ByVal i As Integer) As Long
    If aPower2(0) = 0 Then
       aPower2(0) = &H1&
       aPower2(1) = &H2&
       aPower2(2) = &H4&
       aPower2(3) = &H8&
       aPower2(4) = &H10&
       aPower2(5) = &H20&
       aPower2(6) = &H40&
       aPower2(7) = &H80&
       aPower2(8) = &H100&
       aPower2(9) = &H200&
       aPower2(10) = &H400&
       aPower2(11) = &H800&
       aPower2(12) = &H1000&
       aPower2(13) = &H2000&
       aPower2(14) = &H4000&
       aPower2(15) = &H8000&
       aPower2(16) = &H10000
       aPower2(17) = &H20000
       aPower2(18) = &H40000
       aPower2(19) = &H80000
       aPower2(20) = &H100000
       aPower2(21) = &H200000
       aPower2(22) = &H400000
       aPower2(23) = &H800000
       aPower2(24) = &H1000000
       aPower2(25) = &H2000000
       aPower2(26) = &H4000000
       aPower2(27) = &H8000000
       aPower2(28) = &H10000000
       aPower2(29) = &H20000000
       aPower2(30) = &H40000000
       aPower2(31) = &H80000000
    End If
    Power2 = aPower2(i)
End Function

Private Function MyFormat(ByVal s As String) As String
   MyFormat = Right$("00" & s, 3)
End Function

Private Function CreateDib256(ByVal h_Dc As Long, bi As BITMAPINFO256) As Long

    '創(chuàng)建一個設備無關位圖
    Dim lScanSize As Long
    Dim lptr As Long, lIndex As Long
    Dim r As Long, g As Long, b As Long
    Dim rA As Long, gA As Long, bA As Long
    With bi.bmiHeader
        .biSize = Len(bi.bmiHeader)
        .biWidth = picWidth
        .biHeight = picHeight
        .biPlanes = 1
        .biBitCount = 8
        .biCompression = BI_RGB
        lScanSize = (picWidth + picWidth Mod 4)
        .biSizeImage = lScanSize * picHeight
    End With
    ' Halftone 256 colour palette
    For b = 0 To &H100 Step &H40
        If b = &H100 Then
            bA = b - 1
        Else
            bA = b
        End If
        For g = 0 To &H100 Step &H40
            If g = &H100 Then
                gA = g - 1
            Else
                gA = g
            End If
            For r = 0 To &H100 Step &H40
                If r = &H100 Then
                    rA = r - 1
                Else
                    rA = r
                End If
                With bi.bmiColors(lIndex)
                    .rgbRed = rA: .rgbGreen = gA: .rgbBlue = bA
                End With
                lIndex = lIndex + 1
            Next r
        Next g
    Next b
    CreateDib256 = CreateDIBSection256(h_Dc, bi, DIB_RGB_COLORS, lptr, 0, 0)
End Function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级欧美一级| 久久―日本道色综合久久| 捆绑紧缚一区二区三区视频| 日本一区二区免费在线| 欧美亚洲国产一区二区三区| 成人性色生活片| 首页欧美精品中文字幕| 中文字幕欧美国产| 欧美成人精品二区三区99精品| 不卡视频免费播放| 黄网站免费久久| 亚洲福中文字幕伊人影院| 国产精品伦理在线| 精品国产一区a| 欧美日本一区二区在线观看| av电影天堂一区二区在线| 激情五月激情综合网| 婷婷开心久久网| 亚洲嫩草精品久久| 国产精品理论片| 久久久99久久| 精品福利一区二区三区免费视频| 欧美日韩国产高清一区| 99免费精品视频| 国产成人一级电影| 激情综合一区二区三区| 日韩黄色一级片| 午夜日韩在线电影| 亚洲制服丝袜一区| 一区二区三区成人在线视频| 国产精品久久久一区麻豆最新章节| 精品国产一区a| 精品精品国产高清a毛片牛牛| 91精品免费在线观看| 欧美群妇大交群中文字幕| 在线观看网站黄不卡| 色婷婷综合久久久久中文| 99久久久久免费精品国产| 懂色av一区二区三区免费看| 国产福利一区在线观看| 成人午夜视频在线观看| 国产成人av影院| 国产美女精品在线| 国产曰批免费观看久久久| 精品系列免费在线观看| 国产中文一区二区三区| 国产在线观看免费一区| 国产精品影视网| 国产黄人亚洲片| 成人一二三区视频| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产精品影音先锋| 国产精品996| 国产成人av一区二区| av电影在线观看一区| 色狠狠色噜噜噜综合网| 欧美日韩精品是欧美日韩精品| 欧美日韩在线播放一区| 欧美探花视频资源| 91精品婷婷国产综合久久| 日韩欧美美女一区二区三区| 国产婷婷色一区二区三区在线| 国产欧美日韩在线看| 综合久久国产九一剧情麻豆| 一区二区三区精品在线观看| 日韩二区三区四区| 国产一区二区三区在线看麻豆| 国产成人亚洲综合a∨猫咪| 成人精品国产免费网站| 在线精品视频免费观看| 69堂亚洲精品首页| 久久久久久亚洲综合影院红桃| 国产精品成人午夜| 日本午夜精品视频在线观看| 国产在线精品一区在线观看麻豆| 91在线视频免费观看| 欧美午夜免费电影| 一本到不卡免费一区二区| 色偷偷一区二区三区| 欧美一区二区国产| 国产视频视频一区| 亚洲另类在线制服丝袜| 日韩vs国产vs欧美| 国产精品91一区二区| 国产精品 日产精品 欧美精品| 91视频观看免费| 欧美吞精做爰啪啪高潮| 欧美不卡一区二区| 久久精品日产第一区二区三区高清版| 欧美激情一区二区三区全黄 | 中文字幕高清一区| 亚洲欧美乱综合| 日韩国产欧美一区二区三区| 精品一区二区在线免费观看| 国产ts人妖一区二区| 欧美吻胸吃奶大尺度电影| 2023国产精品| 午夜精品久久久久久久久| 激情六月婷婷综合| av爱爱亚洲一区| 91精品国产色综合久久久蜜香臀| 国产日韩欧美a| 丝袜脚交一区二区| av欧美精品.com| 久久综合久久99| 樱花影视一区二区| 丁香激情综合国产| 精品少妇一区二区| 性做久久久久久免费观看| 国产精品一区二区三区乱码| 欧美精三区欧美精三区| 国产精品高潮久久久久无| 激情图区综合网| 欧洲国内综合视频| 国产亚洲欧美在线| 午夜精品久久久久久久 | 成人教育av在线| 日韩欧美国产综合| 一区二区激情小说| 国产激情一区二区三区四区 | 国产日韩欧美精品综合| 日韩av电影天堂| 欧美午夜理伦三级在线观看| 欧美国产激情一区二区三区蜜月| 视频在线在亚洲| 色综合天天综合给合国产| 久久久九九九九| 亚洲国产视频一区二区| 成人激情免费电影网址| www久久久久| 久久精品99国产精品日本| 欧美午夜精品电影| 中文字幕av不卡| 高清shemale亚洲人妖| 精品国产乱码久久| 视频一区二区三区在线| 91麻豆自制传媒国产之光| 亚洲丝袜制服诱惑| 大白屁股一区二区视频| 欧美成人精品二区三区99精品| 性久久久久久久| 欧美性一二三区| 中文字幕在线观看不卡视频| 91视频.com| 亚洲日本一区二区三区| 国产69精品久久99不卡| 国产日韩在线不卡| 国产一区二区三区蝌蚪| 日韩一区二区在线观看视频| 热久久免费视频| 91精品国产综合久久久久久久 | 蜜臀av一区二区| 91精品国产综合久久蜜臀| 五月激情综合婷婷| 欧美一区二区视频在线观看| 久久电影网电视剧免费观看| 欧美成人综合网站| 国产一区二区不卡在线| 精品av综合导航| 国模冰冰炮一区二区| 国产亚洲欧美在线| 91亚洲精华国产精华精华液| ...av二区三区久久精品| 色综合久久久久| 亚洲综合在线电影| 欧美日本一道本| 日韩av一二三| 中文字幕不卡三区| 欧美制服丝袜第一页| 麻豆精品视频在线观看视频| 337p日本欧洲亚洲大胆色噜噜| 成人性生交大合| 亚洲靠逼com| 欧美日韩成人综合在线一区二区| 日韩福利电影在线| www久久精品| 欧洲一区二区三区免费视频| 亚洲18女电影在线观看| 欧美精品一区二区在线播放| 国产酒店精品激情| 国产精品99久久久久久久vr | 亚洲欧美成人一区二区三区| 色av综合在线| 日韩高清不卡一区二区| 欧美白人最猛性xxxxx69交| 成人免费视频免费观看| 玉米视频成人免费看| 日韩女优电影在线观看| 国产 日韩 欧美大片| 久久精品欧美一区二区三区不卡 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 91亚洲国产成人精品一区二三 | 日本乱人伦一区| 精品一区二区日韩| 亚洲综合激情网| 国产精品欧美一区喷水| 不卡视频在线看| 国产一区二区h| 午夜视频一区二区| 国产精品初高中害羞小美女文|