.Mini GDI+ Include

Category: Graphics - GDI+

Date: 02-16-2022

Return to Index


 
Type EncoderParameter Dword
   pGuid          As Guid    '  // GUID of the parameter
   NumberOfValues As Dword   '  // Number of the parameter values
   dwType         As Dword   '  // Value type, like ValueTypeLONG  etc.
   Value          As Dword   '  // A pointer to the parameter values
End Type
 
Type EncoderParameters   Dword
   Count        As Dword             ' // Number of parameters in this structure
   Parameter(0) As EncoderParameter  ' // Parameter values - variable-length array
End Type
 
Type GdiplusStartupInput Dword
   GdiplusVersion           As Dword
   DebugEventCallback       As Dword
   SuppressBackgroundThread As Long
   SuppressExternalCodecs   As Long
End Type
 
Type GdiplusStartupOutput Dword
   NotificationHook   As Dword
   NotificationUnhook As Dword
End Type
 
Type ImageCodecInfo Dword
   Clsid             As Guid       ' CLSID
   FormatID          As Guid       ' GUID
   CodecName         As Word Ptr   ' const WCHAR*
   DllName           As Word Ptr   ' const WCHAR*
   FormatDescription As Word Ptr   ' const WCHAR*
   FilenameExtension As Word Ptr   ' const WCHAR*
   MimeType          As Word Ptr   ' const WCHAR*
   Flags             As Dword      ' DWORD
   Version           As Dword      ' DWORD
   SigCount          As Dword      ' DWORD
   SigSize           As Dword      ' DWORD
   SigPattern        As Byte Ptr   ' const BYTE*
   SigMask           As Byte Ptr   ' const BYTE*
End Type
 
%MatrixOrderPrepend = 0
 
Declare Function GdiplusStartup Lib "gdiplus.dllAlias "GdiplusStartup" (ByRef token As DwordByRef Input As GdiplusStartupInput, ByRef Output As GdiplusStartupOutput) As Long
Declare Sub GdiplusShutdown Lib "gdiplus.dllAlias "GdiplusShutdown" (ByVal token As Dword)
Declare Function GdipCreateFromHDC Lib "gdiplus.dllAlias "GdipCreateFromHDC" (ByVal hdc As DwordByRef graphics As DwordAs Long
Declare Function GdipLoadImageFromFile Lib "gdiplus.dllAlias "GdipLoadImageFromFile" (ByVal filename As DwordByRef Image As DwordAs Long
Declare Function GdipTranslateWorldTransform Lib "gdiplus.dllAlias "GdipTranslateWorldTransform" (ByVal graphics As DwordByVal dx As SingleByVal dy As SingleByVal order As LongAs Long
Declare Function GdipRotateWorldTransform Lib "gdiplus.dllAlias "GdipRotateWorldTransform" (ByVal graphics As DwordByVal angle As SingleByVal order As LongAs Long
Declare Function GdipDrawImage Lib "gdiplus.dllAlias "GdipDrawImage"(ByVal graphics As DwordByVal Image As DwordByVal x As SingleByVal y As SingleAs Long                                              ' GpStatus
Declare Function GdipDisposeImage Lib "gdiplus.dllAlias "GdipDisposeImage" (ByVal Image As DwordAs Long
Declare Function GdipDeleteGraphics Lib "gdiplus.dllAlias "GdipDeleteGraphics" (ByVal graphics As DwordAs Long
 
Declare Function GdipGetImageWidth Lib "GDIPLUS.DLLAlias "GdipGetImageWidth" (ByVal Image As DwordByRef Width As DwordAs Long
Declare Function GdipGetImageHeight Lib "GDIPLUS.DLLAlias "GdipGetImageHeight" (ByVal Image As DwordByRef height As DwordAs Long
%UnitPixel = 2
 
Declare Function GdipCreatePen1 Lib "gdiplus.dllAlias "GdipCreatePen1" (ByVal Color As DwordByVal Width As SingleByVal unit As LongByRef pen As DwordAs Long
Declare Function GdipDeletePen Lib "gdiplus.dllAlias "GdipDeletePen" (ByVal pen As DwordAs Long
Declare Function GdipDrawLineI Lib "GDIPLUS.DLLAlias "GdipDrawLineI" (ByVal graphics As DwordByVal pen As DwordByVal x1 As LongByVal y1 As LongByVal x2 As LongByVal y2 As LongAs Long
Declare Function GdipGetImageEncodersSize Lib "GDIPLUS.DLLAlias "GdipGetImageEncodersSize" (ByRef numEncoders As DwordByRef Size As DwordAs Long
Declare Function GdipGetImageEncoders Lib "GDIPLUS.DLLAlias "GdipGetImageEncoders" (ByVal numEncoders As DwordByVal Size As DwordByRef encoders As AnyAs Long
Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPLUS.DLLAlias "GdipCreateBitmapFromHBITMAP" (ByVal hbm As DwordByVal hpal As DwordByRef Bitmap As DwordAs Long
Declare Function GdipSaveImageToFile Lib "GDIPLUS.DLLAlias "GdipSaveImageToFile" (ByVal Image As DwordByVal filename As DwordByRef clsidEncoder As GuidByRef encoderParams As EncoderParameters) As Long
 
Declare Function GdipDrawImageRectI Lib "gdiplus.dllAlias "GdipDrawImageRectI" (ByVal hGraphics???, ByVal nImage???, ByVal x&,ByVal y&, ByVal nWidth&, ByVal nHeight&) As Long
 
Function GdiPlusGetEncoderClsid (ByVal strMimeType As StringAs String
   Local hr As Long
   Local pImageCodecInfo As ImageCodecInfo Ptr
   Local numEncoders As Dword
   Local nSize As Dword
   Local i As Long
   Local wstrlen As Long
   Local sMimeType As String
   hr = GdipGetImageEncodersSize(numEncoders, nSize)
   ReDim buffer(nSize - 1) As Byte
   pImageCodecInfo = VarPtr(buffer(0))
   hr = GdipGetImageEncoders(numEncoders, nSize, ByVal pImageCodecInfo)
   If hr = 0 Then
      For i = 1 To numEncoders
         wstrlen = lstrlenW(ByVal @pImageCodecInfo.MimeType)
         If wstrlen Then sMimeType = ACode$(Peek$(@pImageCodecInfo.MimeType, wstrlen * 2))
         If InStr(UCase$(sMimeType), UCase$(strMimeType)) Then
            Function = GuidTxt$(@pImageCodecInfo.Clsid)
            Exit For
         End If
         Incr pImageCodecInfo       '// Increments pointer
      Next
   End If
End Function
 
 
'gbs_00477
'Date: 03-06-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm