The Picture object


PictureWidth As Long
PictureHeight As Long
Image As Long

originX As Single
originY As Single

rank As Single 'currently unused by the class, but might be used for sorting images by similarity or etc.
Histogram As New VB_Histogram  'use MakeHist to generate a histogram for this image.
Histogram_Initialized As Boolean 'set by the class

Enum VBPicture_Compare_mode
Histogram_Interseciton = 0
Image_difference = 16

Function
LoadPicture(ByVal FileName As String) As Long

Sub
DrawImage(hdc As Long, ByVal X1 As Single, ByVal Y1 As Single, Optional ByVal x2 As Single = 0, Optional ByVal y2 As Single = 0, Optional ByVal i As InterpolationMode = InterpolationModeHighQualityBicubic)
'you use this one without begin/end draw

Sub
SetOrigin(ByVal x As Single, ByVal y As Single)

Sub
BeginDraw(hdc As Long, Optional ByVal i As InterpolationMode = InterpolationModeHighQualityBicubic)

Sub
EndDraw()
   
Sub
Drawit(ByVal X1 As Single, ByVal Y1 As Single, Optional ByVal x2 As Single = 0, Optional ByVal y2 As Single = 0, Optional ByVal i As InterpolationMode = InterpolationModeHighQualityBicubic)

'arrays must be correctly allocated to the size of the image.
Sub
GetArrays(ByRef rbuf() As Byte, ByRef gbuf() As Byte, ByRef bbuf() As Byte)

Sub
GetRGBA(ByRef rbuf() As Byte, ByRef gbuf() As Byte, ByRef bbuf() As Byte, ByRef abuf() As Byte)

Function
Compare(OtherPicture As VBpicture, ByVal mode As VBPicture_Compare_mode) As Single

Sub
MakeHist