I have found that:
there are 276 functions in Authenticity's GDIP.au3 (written for 3.3.6.1) that are not in 3.3.14.2's GDIPlus.au3.
there are many constants in his GDIPConstants.au3 that are not in 3.3.14.2's GDIPlus.au3, but there are some that are.
So:
GDIP extras.au3 contains functions that are not in GDIPlus.au3. They have been extracted from GDIP.au3
The revised GDIPConstants.au3 has constants that are duplicates of those in GDIPlus.au3 commented out.
They are attached.
I have done limited testing on 3.3.14.2 with GDIP extras.au3 and the revised GDIPConstants.au3 included.
I have undertaken this effort in thanks for the help with GDI+ that I have received on this form, especially from UEZ.
Authenticity's thread is here. For those who do not 7zip, I am attaching his GDIP as a zip file. It contains many examples.
GDIP33142.zip
GDIPAuthenticity.zip

In my code, the mouse wheel causes the line to move up and down. It does move down to where the picture is, but is not seen there. This can be observed by scrolling down to the picture, and then up again: the line reappears as expected.
How can I get the line to show on the picture? This seems to be a matter of transparency, but I have not found a way of getting the background of $graphLine to be transparent.
The code is now:
#include <ButtonConstants.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars',1)
Global Const $MK_SHIFT = 0x4
Global Const $MK_CONTROL = 0x8
GUIRegisterMsg($WM_MOUSEWHEEL, "WM_MOUSEWHEEL")
Global $gY0,$gY1,$gForm1,$glblLine,$glblPic
main()
Func main()
$gForm1 = GUICreate("Form1", 623, 601, 192, 114)
$glblLine = GUICtrlCreateLabel("", 8, 8, 604, 137)
$glblPic = GUICtrlCreateLabel("", 8, 8, 589, 500)
Local $btn = GUICtrlCreateButton("Rotate", 472, 560, 65, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Local $oldY0,$oldY1
_GDIPlus_Startup()
Local $h = GUICtrlGetHandle($glblLine) ; limit graphics to area of $label
Local $GraphicLine = _GDIPlus_GraphicsCreateFromHWND($h)
Local $hPen = _GDIPlus_PenCreate(0xFF000000,2)
Local $image = _GDIPlus_ImageLoadFromFile('H:\a\P5130021.jpg')
Local $h = GUICtrlGetHandle($glblPic)
Local $GraphicPic = _GDIPlus_GraphicsCreateFromHWND($h)
_GDIPlus_GraphicsDrawImage($GraphicPic,$image,0,0)
$gY0 = 67
$gY1 = 67
_GDIPlus_GraphicsClear($GraphicLine,0)
_GDIPlus_GraphicsDrawLine($GraphicLine, 10, $gY0, 350, $gY1, $hPen)
; Loop until the user exits.
While True
If $gY0<>$oldY0 Or $gY1<>$oldY1 Then
_GDIPlus_GraphicsClear($GraphicLine,0xFFD4D0C8)
_GDIPlus_GraphicsDrawLine($GraphicLine, 10, $gY0, 590, $gY1, $hPen)
$oldY0 = $gY0
$oldY1 = $gY1
Else
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE,$btn
Exit
EndSwitch
EndIf
WEnd
; Clean up resources
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($GraphicLine)
_GDIPlus_Shutdown()
EndFunc
Func WM_MOUSEWHEEL($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg, $wParam, $lParam
Local Const $ymax=500
Local $vec = GUIGetCursorInfo($gForm1)
If $vec[4] = $glblLine Or $vec[4]=$glblPic Then
Local $iDelta = BitShift($wParam, 16) ; positive = up
Local $iKeys = _WinAPI_LoWord($wParam)
If BitAND($iKeys,$MK_CONTROL)=$MK_CONTROL Then
If BitAND($iKeys,$MK_SHIFT)=$MK_SHIFT Then
; do nothing
Else
If $iDelta > 0 And $gY0>3 Then $gY0 -= 1
If $iDelta < 0 And $gY0<$ymax Then $gY0 += 1
EndIf
Else
If BitAND($iKeys,$MK_SHIFT)=$MK_SHIFT Then
If $iDelta > 0 And $gY1>3 Then $gY1 -= 1
If $iDelta < 0 And $gY1<$ymax Then $gY1 += 1
Else
If $iDelta > 0 And $gY0>3 Then $gY0 -= 1
If $iDelta < 0 And $gY0<$ymax Then $gY0 += 1
If $iDelta > 0 And $gY1>3 Then $gY1 -= 1
If $iDelta < 0 And $gY1<$ymax Then $gY1 += 1
EndIf
EndIf
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_MOUSEWHEEL
Some other questions:
Do I really need GDI+, or is there a simpler way?
My code creates Graphics (canvases?) from labels. Is this legitimate?
I have found MSDN to be un-helpful in learning GDI+. Is there a better learning tool?

So a little project I am working on.
I sort of have this working via Irfanview using cmd scripting, but curious if it can be done in AutoIT maybe with GDI+ or any other native tool.
I have an ancient microfilm scanner, and currently the only way it will scan is to take a full screen scan of 11x14 and make it a 2 page 8.5x11 Tiff Image.
So this is cutting the image in half down the middle.
What I need to do is have the 2nd page append to the first page on the right side, and then save the image as a single flat new image (Do not care about format very much)
Any of the GDI wizards think this can be done?
Here is my starting point, I can open the image, convert the format to .jpg and flatten it (lose the 2nd page of the TIF)
I have not quite figured out how to grab that 2nd page or do the append (panorama
#Include <GDIPlus.au3>
Local $hImage, $sCLSID
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Test3.tif")
$sCLSID = _GDIPlus_EncodersGetCLSID("TIF")
$sCLSID2 = _GDIPlus_EncodersGetCLSID("JPG")
_GDIPlus_ImageSaveToFileEx($hImage, @ScriptDir & "\GDIPlus_Image2.jpg", $sCLSID2)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Edit: got a lead on the multipage stuff:
And my code has grown into something where I am trying to draw an image ontop of the first image but it looks like it wont expand the canvas, but ultimately I was thinking just draw the 2nd page next to the 1st page once I figure out how to capture the 2nd page.
#Include <GDIPlus.au3>
Local $hImage, $sCLSID
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Test3.tif")
$sCLSID = _GDIPlus_EncodersGetCLSID("TIF")
$sCLSID2 = _GDIPlus_EncodersGetCLSID("JPG")
$iWidth = _GDIPlus_ImageGetWidth($hImage)
$iHeight = _GDIPlus_ImageGetHeight($hImage)
; Draw one image in another
$hGraphics = _GDIPlus_ImageGetGraphicsContext($hImage)
_GDIPlus_GraphicsDrawImage($hGraphics, $hImage, $iWidth, $iHeight)
_GDIPlus_ImageSaveToFileEx($hImage, @ScriptDir & "\GDIPlus_Image2.jpg", $sCLSID2)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()

Hello everyone!
As always, I'm proud to present you vPaint. It's an image editor. It uses GDI+ as its drawing library.
I want to thank to all members of this forum. Without you, this app wouldn't be ever written. Thank you for everything.
Download:
vPaint 4 image editor

Hello! I've been working on this UDF for some time, but when I read Seeking "kinetic typography" capability in au3 topic, I decided to share it. This UDF brings some functions for creating animations in GDI+ without worrying about rendering or calculating.
Features:
Adding basic shapes (rectangle, ellipse) and text
Animating object properties (like position or size)
Animatable transformations (translate, rotate, scale)
Double-buffering
Rendering to a window or GUI control
Enjoy!
Motion Graphics UDF

A collection of image filter effects usable with AutoIt!
IMPORTANT: You are not allowed to sell this code or just parts of it in a commercial project or modify it and distribute it with a different name!
Distributing copies of this UDF incl. _GDIPlus_BitmapApplyFilter.dll in compiled format (exe) must be free of any fee!
More information can be found in the forum thread!

Hello. I am trying to create preloader animation on gui.
I take one png transparent image, add another etc- supposed to be animation. The problem I am facing: What is the best way of deleting previous image created with gdi plus?
;;;;; In the main code I create a picture:
Global $preloader = GUICtrlCreatePic("", 50, 180,0,0)
;;;;; Later on using the function of changing images
func preloader()
if ($load == 1) then $png ="\1.png"
if ($load == 2) then $png ="2.png"
if ($load == 3) then $png ="3.png"
if ($load == 4) then $png ="4.png"
$hImage = _GDIPlus_ImageLoadFromFile($png)
$Bmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_WinAPI_DeleteObject(GUICtrlSendMsg($preloader, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp))
$load = $load+1
if $load>4 then $load=1
endfunc

Some Graphical Examples using GDI+ Vol. II build 2016-05-07 (33 examples)
This is the continuation of "Some Graphical Examples using GDI+ Vol. I" with currently 33 examples in "snippet style".
For downloads and screenshots just visit the download section.
All examples should properly run on Win7+ operating systems / tested on AutoIt v3.3.14.2!
More examples will follow from time to time.
Thanks to Eukalyptus!
Please report any issues / feel free to post any comment.
Have fun.

When I was thinking about selections in Photoshop, I saw the resemblance to selection modes in GDI+ Regions. Then, I started to think how to apply these combine modes to Paths. So, here is a small script for this:
Download

Was getting some errors in my GDI+ project and wanted to know what they actually were, since I don't know what Error code 4 is.... So I looked it up on MSDN and put together a function that would give return a description of the error based on the code.
UDF:
; #FUNCTION# ====================================================================================================================
; Name...........: _GDIPlus_GetErrorByCode
; Description....: Get the error message for the @Extended error when a _GDIPlus_* function fails.
; Syntax.........: _GDIPlus_GetErrorByCode ( [$iGDIError = @Extended [, Const $iReturnType = 0] ])
; Parameters.....: $iGDIError - The error to retrieve. Default is the last @Extended code.
; $iReturnType - What type the return should be. 0 will return a string, any other value returns an array.
; - [0] Holds what type of error.
; - [1] Holds the description.
; Return values..: Success - The error based on the code given in the formate requested.
; Failure - The Error code given was out of range, not a valid code.
; Author.........: InunoTaishou
; Remarks........: Regardless of the error code a return in the format requested will be returned. If the code is out of range
; it will return an OutOfRange error.
; Related........: GDIPlus
; Link...........: https://msdn.microsoft.com/en-us/library/windows/desktop/ms534175%28v=vs.85%29.aspx
; Example........: Yes
; ===============================================================================================================================
Func _GDIPlus_GetErrorByCode($iGDIError = @extended, Const $iReturnType = 0)
Local Static $aErrors[22][2] = [["OK", "Indicates that the method call was successful."], _
["GenericError", "Indicates that there was an error on the method call, which is identified as something other than those defined by the other elements of this enumeration."], _
["InvalidParameter", "Indicates that one of the arguments passed to the method was not valid."], _
["OutOfMemory", "Indicates that the operating system is out of memory and could not allocate memory to process the method call. For an explanation of how constructors use the OutOfMemory status, see the Remarks section at the end of this topic."], _
["ObjectBusy", "Indicates that one of the arguments specified in the API call is already in use in another thread."], _
["InsufficientBuffer", "Indicates that a buffer specified as an argument in the API call is not large enough to hold the data to be received."], _
["NotImplemented", "Indicates that the method is not implemented."], _
["Win32Error", "Indicates that the method generated a Win32 error."], _
["WrongState", "Indicates that the object is in an invalid state to satisfy the API call. For example, calling Pen::GetColor from a pen that is not a single, solid color results in a WrongState status."], _
["Aborted", "Indicates that the method was aborted."], _
["FileNotFound", "Indicates that the specified image file or metafile cannot be found."], _
["ValueOverflow", "Indicates that the method performed an arithmetic operation that produced a numeric overflow."], _
["AccessDenied", "Indicates that a write operation is not allowed on the specified file."], _
["UnknownImageFormat", "Indicates that the specified image file format is not known."], _
["FontFamilyNotFound", "Indicates that the specified font family cannot be found. Either the font family name is incorrect or the font family is not installed."], _
["FontStyleNotFound", "Indicates that the specified style is not available for the specified font family."], _
["NotTrueTypeFont", "Indicates that the font retrieved from an HDC or LOGFONT is not a TrueType font and cannot be used with GDI+."], _
["UnsupportedGdiplusVersion", "Indicates that the version of GDI+ that is installed on the system is incompatible with the version with which the application was compiled."], _
["GdiplusNotInitialized", "Indicates that the GDI+API is not in an initialized state. To function, all GDI+ objects require that GDI+ be in an initialized state. Initialize GDI+ by calling GdiplusStartup."], _
["PropertyNotFound", "Indicates that the specified property does not exist in the image."], _
["PropertyNotSupported", "Indicates that the specified property is not supported by the format of the image and, therefore, cannot be set."], _
["ProfileNotFound", "Indicates that the color profile required to save an image in CMYK format was not found."]]
Return (($iGDIError <= 21 And $iGDIError >= 0) ? _
($iReturnType = 0 ? $aErrors[$iGDIError][0] & ": " & $aErrors[$iGDIError][1] : StringSplit($aErrors[$iGDIError][0] & "|" & $aErrors[$iGDIError][1], "|", 2)) : _
($iReturnType = 0 ? SetError(10, 0, "OutOfRange: Error code " & $iGDIError & " is out of range") : SetError(10, $iGDIError, StringSplit("OutOfRange" & "|" & "Error code " & $iGDIError & " is out of range", "|", 2))))
EndFunc ;==>_GDIPlus_GetErrorByCode
Example:
#include <Array.au3>
#include <GDIPlus.au3>
#include <GUIEdit.au3>
_GDIPlus_Startup()
Global Const $GUI_EVENT_CLOSE = -3
Global $hGui = GUICreate("GDI+ Error by code", 800, 500)
Global $hEdit = _GUICtrlEdit_Create($hGui, "", 10, 300, 780, 190)
Global $hPic = GUICtrlGetHandle(GUICtrlCreatePic("", 0, 0, 800, 290))
Global $hDc = _WinAPI_GetWindowDC($hPic)
Global $hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDc)
Global $hPen = _GDIPlus_PenCreate(0xFF00FFFF, 6)
Global $hFormat = _GDIPlus_StringFormatCreate()
Global $hFontFamily = _GDIPlus_FontFamilyCreate("Segoe UI")
Global $hFont = _GDIPlus_FontCreate($hFontFamily, 24)
Global $tLaytout = _GDIPlus_RectFCreate(0, 0, 800, 290)
Global $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000)
Global $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Image1.jpg")
Global $hFile = FileOpen(@ScriptDir & "\Image2.jpg", 16 + 1)
_GDIPlus_StringFormatSetAlign($hFormat, 1)
_GDIPlus_StringFormatSetLineAlign($hFormat, 1)
GUISetState(@SW_SHOW, $hGui)
Debug("Error generating calls" & @CRLF)
Debug("Fake Font Family for _GDIPlus_FontFamilyCreate:" & _GDIPlus_FontFamilyCreate("AutoIt Rulez") & @CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF)
Debug("Wrong Parameter for _GDIPlus_GraphicsClear: " & _GDIPlus_GraphicsClear(0, 0xFFF0F0F0) & @CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF)
Debug("Load image for a file that's already open _GDIPlus_ImageLoadFromFile: " & _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Image2.jpg") & @CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF)
Debug("Save image over a file that's already open _GDIPlus_ImageSaveToFile: " & _GDIPlus_ImageSaveToFile($hImage, @ScriptDir & "\Image2.jpg") & @CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF)
_GDIPlus_ImageDispose($hImage)
Debug("Dispose image that's already been disposed _GDIPlus_ImageDispose: " & _GDIPlus_ImageDispose($hImage) & @CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF)
Debug(@CRLF & "Non error generating calls" & @CRLF)
Debug("_GDIPlus_GraphicsClear: " & _GDIPlus_GraphicsClear($hGraphics, 0xFFF0F0F0) & @CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF)
Debug("_GDIPlus_GraphicsDrawStringEx: " & _
_GDIPlus_GraphicsDrawStringEx($hGraphics, "This is a GDI+ UDF for getting the error message by @Extended code." & @CRLF & "Author: InunoTaishou", $hFont, $tLaytout, $hFormat, $hBrush) & _
@CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF)
Debug("_GDIPlus_GraphicsDrawRect: " & _GDIPlus_GraphicsDrawRect($hGraphics, 2, 2, 796, 286, $hPen) & @CRLF & @TAB & _GDIPlus_GetErrorByCode() & @CRLF & @CRLF)
Debug("All available errors:" & @CRLF & @TAB)
For $i = 0 to 21
Debug($i & ": " & _GDIPlus_GetErrorByCode($i) & @CRLF & @TAB)
Next
_ArrayDisplay(_GDIPlus_GetErrorByCode(22, 1), "Error 22")
Do
Until (GUIGetMsg() = $GUI_EVENT_CLOSE)
_WinAPI_ReleaseDC($hPic, $hDc)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_PenDispose($hPen)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_FontFamilyDispose($hFontFamily)
_GDIPlus_BrushDispose($hBrush)
FileClose($hFile)
GUIDelete($hGui)
Exit 0
Func Debug(Const $sMsg = "")
_GUICtrlEdit_AppendText($hEdit, $sMsg)
EndFunc ;==>Debug
; #FUNCTION# ====================================================================================================================
; Name...........: _GDIPlus_GetErrorByCode
; Description....: Get the error message for the @Extended error when a _GDIPlus_* function fails.
; Syntax.........: _GDIPlus_GetErrorByCode ( [$iGDIError = @Extended [, Const $iReturnType = 0] ])
; Parameters.....: $iGDIError - The error to retrieve. Default is the last @Extended code.
; $iReturnType - What type the return should be. 0 will return a string, any other value returns an array.
; - [0] Holds what type of error.
; - [1] Holds the description.
; Return values..: Success - The error based on the code given in the formate requested.
; Failure - The Error code given was out of range, not a valid code.
; Author.........: InunoTaishou
; Remarks........: Regardless of the error code a return in the format requested will be returned. If the code is out of range
; it will return an OutOfRange error.
; Related........: GDIPlus
; Link...........: https://msdn.microsoft.com/en-us/library/windows/desktop/ms534175%28v=vs.85%29.aspx
; Example........: Yes
; ===============================================================================================================================
Func _GDIPlus_GetErrorByCode($iGDIError = @extended, Const $iReturnType = 0)
Local Static $aErrors[22][2] = [["OK", "Indicates that the method call was successful."], _
["GenericError", "Indicates that there was an error on the method call, which is identified as something other than those defined by the other elements of this enumeration."], _
["InvalidParameter", "Indicates that one of the arguments passed to the method was not valid."], _
["OutOfMemory", "Indicates that the operating system is out of memory and could not allocate memory to process the method call. For an explanation of how constructors use the OutOfMemory status, see the Remarks section at the end of this topic."], _
["ObjectBusy", "Indicates that one of the arguments specified in the API call is already in use in another thread."], _
["InsufficientBuffer", "Indicates that a buffer specified as an argument in the API call is not large enough to hold the data to be received."], _
["NotImplemented", "Indicates that the method is not implemented."], _
["Win32Error", "Indicates that the method generated a Win32 error."], _
["WrongState", "Indicates that the object is in an invalid state to satisfy the API call. For example, calling Pen::GetColor from a pen that is not a single, solid color results in a WrongState status."], _
["Aborted", "Indicates that the method was aborted."], _
["FileNotFound", "Indicates that the specified image file or metafile cannot be found."], _
["ValueOverflow", "Indicates that the method performed an arithmetic operation that produced a numeric overflow."], _
["AccessDenied", "Indicates that a write operation is not allowed on the specified file."], _
["UnknownImageFormat", "Indicates that the specified image file format is not known."], _
["FontFamilyNotFound", "Indicates that the specified font family cannot be found. Either the font family name is incorrect or the font family is not installed."], _
["FontStyleNotFound", "Indicates that the specified style is not available for the specified font family."], _
["NotTrueTypeFont", "Indicates that the font retrieved from an HDC or LOGFONT is not a TrueType font and cannot be used with GDI+."], _
["UnsupportedGdiplusVersion", "Indicates that the version of GDI+ that is installed on the system is incompatible with the version with which the application was compiled."], _
["GdiplusNotInitialized", "Indicates that the GDI+API is not in an initialized state. To function, all GDI+ objects require that GDI+ be in an initialized state. Initialize GDI+ by calling GdiplusStartup."], _
["PropertyNotFound", "Indicates that the specified property does not exist in the image."], _
["PropertyNotSupported", "Indicates that the specified property is not supported by the format of the image and, therefore, cannot be set."], _
["ProfileNotFound", "Indicates that the color profile required to save an image in CMYK format was not found."]]
Return (($iGDIError <= 21 And $iGDIError >= 0) ? _
($iReturnType = 0 ? $aErrors[$iGDIError][0] & ": " & $aErrors[$iGDIError][1] : StringSplit($aErrors[$iGDIError][0] & "|" & $aErrors[$iGDIError][1], "|", 2)) : _
($iReturnType = 0 ? SetError(10, 0, "OutOfRange: Error code " & $iGDIError & " is out of range") : SetError(10, $iGDIError, StringSplit("OutOfRange" & "|" & "Error code " & $iGDIError & " is out of range", "|", 2))))
EndFunc ;==>_GDIPlus_GetErrorByCode