ImageFile.ARGBData property
Retrieves the raw image bits as a Vector of Long values.
This property is read-only.
Syntax
Property ARGBData( _
)
Property value
Vector value of image bits.
Remarks
The ARGBData property returns a Vector of Long values that contain raw ARGB bitmap data. Each Long value represents a pixel. The first value corresponds to the pixel at the upper left and proceeds to the right, then down. When organized this way, the count of Long values in the Vector will be the product of the image's width and height.
You can use the following function to calculate the index of a specific pixel by its (x,y) coordinate and return the value of the Vector at that location.
Function GetPixel(v, x, y, width, height)
If x > width Or x < 1 Or _
y > height Or y < 1 Or _
v.Count <> width * height Then
GetPixel = 0
Exit Function
End If
GetPixel = v(x + (y - 1) * width)
End Function
Each Long value contains 4 bytes, the first byte (or high-order byte) represents the Alpha value. An Alpha value of 255 is completely opaque. An Alpha value of 0 is completely transparent (for Image types that support tranparency). Each subsequent byte corresponds to the Red, Green, and Blue value respectively.
The following example includes functions that show how to acquire the individual Alpha, Red, Green, and Blue values from a Long ARGB value.
Function Get4ByteHex(val)
Dim s As String
s = Hex(val)
Do While Len(s) < 8
s = "0" & s
Loop
Get4ByteHex = Right(s, 8)
End Function
Function Get1ByteHex(val)
Dim s As String
s = Hex(val)
Do While Len(s) < 2
s = "0" & s
Loop
Get1ByteHex = Right(s, 2)
End Function
Function GetAlpha(val)
Dim s As String
s = Get4ByteHex(val)
GetAlpha = CLng("&h" & Left(s, 2))
End Function
Function GetRed(val)
Dim s As String
s = Get4ByteHex(val)
GetRed = CLng("&h" & Mid(s, 3, 2))
End Function
Function GetGreen(val)
Dim s As String
s = Get4ByteHex(val)
GetGreen = CLng("&h" & Mid(s, 5, 2))
End Function
Function GetBlue(val)
Dim s As String
s = Get4ByteHex(val)
GetBlue = CLng("&h" & Right(s, 2))
End Function
Function GetARGB(a, r, g, b)
Dim s As String
s = "&h" & Get1ByteHex(a) & Get1ByteHex(r) & Get1ByteHex(g) & Get1ByteHex(b)
GetARGB = CLng(s)
End Function
For additional example code, see ARGB Filter: Create a Modified Version of an Image.
Requirements
Minimum supported client |
Windows Vista [desktop apps only] |
Minimum supported server |
Windows Server 2003 R2 [desktop apps only] |
Header |
|
IDL |
|
See also
-
Reference