亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Asp組件高級入門與精通系列之一

2019-11-17 05:26:14
字體:
來源:轉載
供稿:網友
很久沒有寫這個系列了,最近一直在忙其他的東西高級的組件話題我們將討論一些比較難實現的,復雜的東西前段時間我寫了一個龍卷風縮略圖水印組件,感覺效果還不錯,由于是vb寫的,有一些難度,大家一起來看看這里有帖子:http://community.csdn.net/EXPert/topic/4115/4115767.xml?temp=.9513056功能如下:龍卷風縮略圖水印組件1.0版
功能特點:
1.支持從bmp位圖,jpeg,gif導入
2.僅支持生成jpeg格式
3.文字水印,支持自定義字體,旋轉角度,顏色,字體寬度和高度
4.圖片水印,支持透明度
5.暫時不支持直接將文件流寫入瀏覽器
6.消耗系統資源少
7.每個例子都有具體的注釋
龍卷風縮略圖水印組件0.9版
功能特點:
1.僅僅支持從bmp位圖導入
2.僅僅支持生成jpeg格式
3.消耗系統資源少版本歷史
龍卷風縮略圖水印組件1.0版
時間:2005-02-13
增加了對jpg,gif圖像導入的支持
時間:2005-02-12
功能:增加了圖片水印功能
時間:2005-02-11
功能:增加了文字水印功能龍卷風縮略圖水印組件0.9版
時間:2005-02-10
功能:僅支持bmp位圖導入功能,支持生成jpeg功能,只有縮略功能
可以免費使用,無任何限制
如有問題,希望提出,以便我改進
我的email:yyg19780718@163.com代碼如下:模塊1:Option Explicit
'有部分代碼不需要,以后可能會用到Public Const LR_LOADFROMFILE = &H10
Public Const IMAGE_BITMAP = 0
Public Const IMAGE_ICON = 1
Public Const IMAGE_CURSOR = 2
Public Const IMAGE_ENHMETAFILE = 3Public Const SRCCOPY           As Long = &HCC0020
Public Const BI_RGB = 0&
Public Const DIB_RGB_COLORS = 0 '結構BITMAPINFO中包含了RGB值的數組RGBQUAD
Public Const STRETCH_HALFTONE  As Long = &H4&Public Type BITMAPINFOHEADER '40 字節位圖文件頭
        biSize As Long          '結構所需字節數
        biWidth As Long         '圖像寬度
        biHeight As Long        '圖像高度
        biplanes As Integer     '必須為1,不用考慮
        biBitCount As Integer   '顏色位數
        biComPRession As Long   '指定是否壓縮,一般取BI_RGB
        biSizeImage As Long     '實際的位圖占據的字節數,=biWidth'(必須是4的整數〕*biHeight
        biXPelsPerMeter As Long '水平分辨率
        biYPelsPerMeter As Long '垂直分辨率
        biClrUsed As Long       '本圖像用到的實際實際顏色數
        biClrImportant As Long  '本圖像中重要的顏色數,為0,則認為所有的圖像都是重要的
End Type
Public Type RGBQUAD
        rgbBlue As Byte         '該顏色的藍色分量
        rgbGreen As Byte        '該顏色的綠色分量
        rgbRed As Byte          '該顏色的紅色分量
        rgbReserved As Byte     '保留值
End TypePublic Type Bitmap
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End TypePublic Type BitmapInfo
        bmiHeader As BITMAPINFOHEADER
        bmiColors As RGBQUAD
End TypePublic Type BITMAPFILEHEADER
    bfType(1 To 2) As Byte
    bfSize As Long
    bfReserved1 As Integer
    bfReserved2 As Integer
    bfOffBits As Long
End Type
Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function CreateDIBSection Lib "gdi32" (ByVal hdc As Long, pBitmapInfo As BitmapInfo, ByVal un As Long, ByVal lplpVoid As Long, ByVal handle As Long, ByVal dw As Long) As Long
Public 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 BitmapInfo, ByVal wUsage As Long) As Long
Public Declare Function SetDIBitsToDevice Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As BitmapInfo, ByVal wUsage As Long) As Long
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public 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
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Public Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal dwImageType As Long, ByVal dwDesiredWidth As Long, ByVal dwDesiredHeight As Long, ByVal dwFlags As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Public Declare Function SetStretchBltMode Lib "gdi32" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
模塊2:Option Explicit'以下是輸出文字水印的api
Public Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Public Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Public Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
Public Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As LongPublic Const LF_FACESIZE = 32
Public Const TRANSPARENT = 1
'邏輯字體結構
Public Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName As String * LF_FACESIZE
End Type'圖片水印透明處理
Public Declare Function AlphaBlend Lib "MSIMG32.dll" ( _
  ByVal hdcDest As Long, _
  ByVal nXOriginDest As Long, _
  ByVal nYOriginDest As Long, _
  ByVal nWidthDest As Long, _
  ByVal nHeightDest As Long, _
  ByVal hdcSrc As Long, _
  ByVal nXOriginSrc As Long, _
  ByVal nYOriginSrc As Long, _
  ByVal nWidthSrc As Long, _
  ByVal nHeightSrc As Long, _
  ByVal lBlendFunction As Long _
) As LongPublic Type BLENDFUNCTION
  BlendOp As Byte
  BlendFlags As Byte
  SourceConstantAlpha As Byte
  AlphaFormat As Byte
End Type
' BlendOp:
Public Const AC_SRC_OVER = &H0
' AlphaFormat:
Public Const AC_SRC_ALPHA = &H1
模塊3Option Explicit'以下是GDI+的聲明
Public Type GUID
   Data1 As Long
   Data2 As Integer
   Data3 As Integer
   Data4(0 To 7) As Byte
End TypePublic Type GdiplusStartupInput
   GdiplusVersion As Long
   DebugEventCallback As Long
   SuppressBackgroundThread As Long
   SuppressExternalCodecs As Long
End TypePublic Type EncoderParameter
   GUID As GUID
   NumberOfValues As Long
   type As Long
   Value As Long
End TypePublic Type EncoderParameters
   Count As Long
   Parameter As EncoderParameter
End TypePublic Declare Function GdiplusStartup Lib "GDIPlus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As Long
Public Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long
Public Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hpal As Long, Bitmap As Long) As Long
Public Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long
Public Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal filename As Long, clsidEncoder As GUID, encoderParams As Any) As Long
Public Declare Function GdipSaveImageToStream Lib "GDIPlus" (ByVal Image As Long, ByVal stream As Long, clsidEncoder As GUID, encoderParams As Any) As Long
Public Declare Function CLSIDFromString Lib "ole32" (ByVal str As Long, id As GUID) As Long
'保存成jpeg格式
Public Sub SaveJPG(ByVal pict As Long, ByVal filename As String, Optional ByVal quality As Byte = 100)
Dim tSI As GdiplusStartupInput
Dim lRes As Long
Dim lGDIP As Long
Dim lBitmap As Long   ' Initialize GDI+
   tSI.GdiplusVersion = 1
   lRes = GdiplusStartup(lGDIP, tSI)
  
   If lRes = 0 Then
  
      ' Create the GDI+ bitmap
      ' from the image handle
      lRes = GdipCreateBitmapFromHBITMAP(pict, 0, lBitmap)
  
      If lRes = 0 Then
         Dim tJpgEncoder As GUID
         Dim tParams As EncoderParameters
        
         ' Initialize the encoder GUID
         CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), _
                         tJpgEncoder
     
         ' Initialize the encoder parameters
         tParams.Count = 1
         With tParams.Parameter ' Quality
            ' Set the Quality GUID
            CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB3505E7EB}"), .GUID
            .NumberOfValues = 1
            .type = 1
            .Value = VarPtr(quality)
         End With
        
         ' Save the image
         lRes = GdipSaveImageToFile(lBitmap, StrPtr(filename), tJpgEncoder, tParams)
                            
         ' Destroy the bitmap
         GdipDisposeImage lBitmap
        
      End If
     
      ' Shutdown GDI+
      GdiplusShutdown lGDIP
   End If
  
   If lRes Then
      Err.Raise vbObjectError + 515, , "保存圖像發生了錯誤,錯誤號:" & lRes
   End If
  
End Sub

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕视频一区二区在线有码| 日韩电影免费在线观看中文字幕| 国产噜噜噜噜噜久久久久久久久| 久久久99久久精品女同性| 欧美日韩国产激情| 欧美成人亚洲成人日韩成人| 亚洲国产精品久久91精品| 欧美一级黑人aaaaaaa做受| 亚洲xxx自由成熟| 欧美剧在线观看| 大胆人体色综合| 日韩欧美高清视频| 亚洲黄一区二区| 欧美成人激情视频免费观看| 尤物精品国产第一福利三区| 久久久久久久久久国产| 美女精品视频一区| 国产欧美一区二区白浆黑人| 久久99精品久久久久久噜噜| 久久6免费高清热精品| 国产精品高精视频免费| 日韩极品精品视频免费观看| 久久视频在线免费观看| 精品久久久国产精品999| 久久免费少妇高潮久久精品99| 久热国产精品视频| 国产日韩欧美中文| 亚洲国产精彩中文乱码av| 亚洲黄色在线看| 国模叶桐国产精品一区| 久久成人av网站| 亚洲无限av看| 亚洲综合色激情五月| 欧洲美女免费图片一区| 日韩中文字幕精品| 国产精品免费在线免费| 77777少妇光屁股久久一区| 国产成人综合一区二区三区| 午夜精品久久久久久久男人的天堂| 奇米一区二区三区四区久久| 91免费看片在线| 91av在线网站| 91色在线观看| 日韩欧美精品中文字幕| 国产亚洲精品美女久久久久| 欧美在线视频一区| 欧美精品日韩www.p站| 91国偷自产一区二区三区的观看方式| 久久久久久久久中文字幕| 久久综合久久88| 亚洲一区中文字幕在线观看| 欧美日韩在线观看视频| 青青草一区二区| 欧美视频免费在线观看| 日韩欧美在线一区| 欧美交受高潮1| 国产成人自拍视频在线观看| www.亚洲天堂| 国产精品美女视频网站| 欧美视频第一页| 国产亚洲一区二区精品| 在线日韩精品视频| 性欧美xxxx视频在线观看| 亚洲成人久久一区| 91国产精品91| 国产精品第三页| 久久久噜噜噜久噜久久| 色中色综合影院手机版在线观看| 欧美性猛交xxxx| 57pao成人国产永久免费| 久久久成人精品| 国产欧美精品一区二区三区介绍| 日韩精品免费在线视频观看| 国产美女高潮久久白浆| 亚洲色图狂野欧美| 国产午夜精品全部视频播放| 亚洲最大成人免费视频| 国产第一区电影| 久久久久久久久爱| 国产精品网站大全| 日韩二区三区在线| 欧美xxxx做受欧美.88| 久久久成人精品| 国产精品久久9| 久久久久久久久亚洲| 亚洲欧洲高清在线| 亚洲一区二区自拍| 亚洲第一精品夜夜躁人人躁| 国产在线a不卡| 国产一区二区三区网站| 国产成人精品综合久久久| 国产精品久久97| 97精品一区二区三区| 九九热精品视频国产| 少妇久久久久久| 日韩欧美在线视频观看| 亚洲黄页网在线观看| 国产精品白嫩初高中害羞小美女| 亚洲国产古装精品网站| 欧美成人三级视频网站| 欧美丰满片xxx777| 亚洲区bt下载| 精品伊人久久97| 538国产精品一区二区在线| 中文字幕精品视频| 国产精品美女主播在线观看纯欲| 91精品免费看| 亚洲字幕一区二区| 性欧美在线看片a免费观看| 亚洲国产毛片完整版| 欧美一区二区三区免费视| 亚洲欧美日韩另类| 国产精品福利网站| 国产一区二区三区视频免费| 国产精品高潮视频| 久久久精品电影| 久久久久成人网| 亚洲无限乱码一二三四麻| 亚洲一区二区免费在线| 亚洲欧美综合另类中字| 国产精品大陆在线观看| 国产一区二区美女视频| 欧美韩国理论所午夜片917电影| 日韩在线观看av| 国产热re99久久6国产精品| 国产精品视频公开费视频| 亚洲成人精品在线| 国产日韩欧美在线看| 中国china体内裑精亚洲片| 欧美激情视频在线观看| 久久人人爽人人爽人人片av高请| 欧美一区二粉嫩精品国产一线天| 久久成人人人人精品欧| 精品久久久久久亚洲国产300| 在线电影av不卡网址| 2020欧美日韩在线视频| 亚洲视频在线观看网站| 国产69精品久久久| 日韩欧美国产免费播放| 欧美成人一二三| 日韩av中文字幕在线| 欧美影院成年免费版| 国产一区二中文字幕在线看| 精品福利视频导航| 亚洲精品视频播放| 韩国日本不卡在线| 国产精品视频一区二区三区四| 亚洲美女www午夜| 国产极品jizzhd欧美| 国产精品视频久久| 国产精品老女人精品视频| 91最新在线免费观看| 亚洲va欧美va在线观看| 69影院欧美专区视频| 国产成人黄色av| 91性高湖久久久久久久久_久久99| 亚洲人成电影网站| 成人激情视频免费在线| 国产精品久久久久久久av大片| 精品中文字幕在线| 国产美女精品视频免费观看| 欧美国产日本在线| 91av在线视频观看| 久久影院中文字幕|