zoukankan      html  css  js  c++  java
  • VB的gdi+相关声明

    模块:

    Option Explicit

    Public Declare Function GdiplusStartup Lib "gdiplus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As GpStatus
    Public Declare Function GdiplusShutdown Lib "gdiplus" (ByVal token As Long) As GpStatus

    Public Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hDC As Long, graphics As Long) As GpStatus
    Public Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal graphics As Long) As GpStatus
    Public Declare Function GdipSetSmoothingMode Lib "gdiplus" (ByVal graphics As Long, ByVal SmoothingMd As SmoothingMode) As GpStatus
    Public Declare Function GdipSetInterpolationMode Lib "gdiplus" (ByVal graphics As Long, ByVal interpolation As InterpolationMode) As GpStatus
    Public Declare Function GdipSetCompositingQuality Lib "gdiplus" (ByVal graphics As Long, ByVal CompositingQlty As CompositingQuality) As GpStatus

    Public Declare Function GdipRotateWorldTransform Lib "gdiplus" (ByVal graphics As Long, ByVal angle As Single, ByVal order As MatrixOrder) As GpStatus
    Public Declare Function GdipTranslateWorldTransform Lib "gdiplus" (ByVal graphics As Long, ByVal dx As Single, ByVal dy As Single, ByVal order As MatrixOrder) As GpStatus

    Public Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal filename As Long, Image As Long) As GpStatus
    Public Declare Function GdipDisposeImage Lib "gdiplus" (ByVal Image As Long) As GpStatus
    Public Declare Function GdipGetImageWidth Lib "gdiplus" (ByVal Image As Long, Width As Long) As GpStatus
    Public Declare Function GdipGetImageHeight Lib "gdiplus" (ByVal Image As Long, Height As Long) As GpStatus
    Public Declare Function GdipDrawImageRect Lib "gdiplus" (ByVal graphics As Long, ByVal Image As Long, ByVal x As Single, ByVal y As Single, ByVal Width As Single, ByVal Height As Single) As GpStatus

    Public Enum MatrixOrder
    MatrixOrderPrepend = 0
    MatrixOrderAppend = 1
    End Enum

    Public Enum QualityMode
    QualityModeInvalid = -1
    QualityModeDefault = 0
    QualityModeLow = 1
    QualityModeHigh = 2
    End Enum

    Public Enum SmoothingMode
    SmoothingModeInvalid = QualityModeInvalid
    SmoothingModeDefault = QualityModeDefault
    SmoothingModeHighSpeed = QualityModeLow
    SmoothingModeHighQuality = QualityModeHigh
    SmoothingModeNone
    SmoothingModeAntiAlias
    End Enum

    Public Enum InterpolationMode
    InterpolationModeInvalid = QualityModeInvalid
    InterpolationModeDefault = QualityModeDefault
    InterpolationModeLowQuality = QualityModeLow
    InterpolationModeHighQuality = QualityModeHigh
    InterpolationModeBilinear
    InterpolationModeBicubic
    InterpolationModeNearestNeighbor
    InterpolationModeHighQualityBilinear
    InterpolationModeHighQualityBicubic
    End Enum

    Public Enum CompositingQuality
    CompositingQualityInvalid = QualityModeInvalid
    CompositingQualityDefault = QualityModeDefault
    CompositingQualityHighSpeed = QualityModeLow
    CompositingQualityHighQuality = QualityModeHigh
    CompositingQualityGammaCorrected
    CompositingQualityAssumeLinear
    End Enum

    Public Type GdiplusStartupInput
    GdiplusVersion As Long
    DebugEventCallback As Long
    SuppressBackgroundThread As Long
    SuppressExternalCodecs As Long
    End Type

    Public Enum GpStatus
    Ok = 0
    GenericError = 1
    InvalidParameter = 2
    OutOfMemory = 3
    ObjectBusy = 4
    InsufficientBuffer = 5
    NotImplemented = 6
    Win32Error = 7
    WrongState = 8
    Aborted = 9
    FileNotFound = 10
    ValueOverflow = 11
    AccessDenied = 12
    UnknownImageFormat = 13
    FontFamilyNotFound = 14
    FontStyleNotFound = 15
    NotTrueTypeFont = 16
    UnsupportedGdiplusVersion = 17
    GdiplusNotInitialized = 18
    PropertyNotFound = 19
    PropertyNotSupported = 20
    End Enum

    窗体(AutoRedraw=True)
    Option Explicit

    Dim token As Long
    Dim graphics As Long

    Dim img As Long, w As Long, h As Long

    Private Sub InitGDIPlus()
    Dim uInput As GdiplusStartupInput

    uInput.GdiplusVersion = 1
    If GdiplusStartup(token, uInput) <> Ok Then
    MsgBox "GDI+ 初始化错误。程序即将关闭。", vbCritical, "InitError"
    End
    End If
    End Sub

    Private Sub TerminateGDIPlus()
    GdipDisposeImage img
    GdipDeleteGraphics graphics

    GdiplusShutdown token
    End Sub

    Private Sub Form_Load()
    InitGDIPlus

    GdipCreateFromHDC Me.hDC, graphics
    'GdipSetSmoothingMode graphics, SmoothingModeAntiAlias
    'GdipSetInterpolationMode graphics, InterpolationModeHighQuality
    'GdipSetCompositingQuality graphics, CompositingQualityHighQuality

    GdipLoadImageFromFile StrPtr(App.Path & "1.png"), img
    GdipGetImageWidth img, w
    GdipGetImageHeight img, h

    Rotate 15, graphics, 200, 200
    End Sub

    Sub Rotate(angle As Single, g As Long, x As Single, y As Integer)
    GdipRotateWorldTransform g, angle, MatrixOrderAppend
    GdipTranslateWorldTransform g, x, y, MatrixOrderAppend
    GdipDrawImageRect g, img, -w, -h / 2, w, h
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    TerminateGDIPlus
    End Sub
  • 相关阅读:
    datagrid在MVC中的运用05-加入时间搜索条件,枚举填充下拉框
    datagrid在MVC中的运用04-同时添加搜索和操作区域
    datagrid在MVC中的运用03-选择单行或多行
    datagrid在MVC中的运用02-结合搜索
    datagrid在MVC中的运用01-基本属性并实现分页
    Object [object Object] has no method 'live'
    AutoMapper在MVC中的运用小结
    error CS0234: 命名空间“XXX”中不存在类型或命名空间名称“UserInfoVm”(是否缺少程序集引用?)
    《黄聪:手机移动站SEO优化教程》2、PC端和手机移动端SEO优化区别
    《黄聪:手机移动站SEO优化教程》1、为什么要做手机移动端网站
  • 原文地址:https://www.cnblogs.com/liuzhaoyzz/p/4035079.html
Copyright © 2011-2022 走看看