This method provides a perspective-like effect by image corners transformation.
Syntax
'Declaration
Public Shared Sub Perspective( _
ByVal As ImGearRasterPage, _
ByVal As ImGearPoint, _
ByVal As ImGearPoint, _
ByVal As ImGearPoint, _
ByVal As ImGearPoint, _
ByVal As ImGearPixel _
)
'Usage
Dim page As ImGearRasterPage
Dim point0 As ImGearPoint
Dim point1 As ImGearPoint
Dim point2 As ImGearPoint
Dim point3 As ImGearPoint
Dim color As ImGearPixel
ImGearEffects.Perspective(page, point0, point1, point2, point3, color)
Parameters
- page
- Page class object.
- point0
- New coordinates of left top image corner.
- point1
- New coordinates of right top image corner.
- point2
- New coordinates of left bottom image corner.
- point3
- New coordinates of right bottom image corner.
- color
- Fill color for empty image part.
Example
//Sample usage of Perspective method.
//New positions for the 4 corners of the image
ImGearPoint igPointLeftTop = new ImGearPoint(igRasterPage.DIB.Width / 4, igRasterPage.DIB.Height / 4);
ImGearPoint igPointRightTop = new ImGearPoint(igRasterPage.DIB.Width, 0);
ImGearPoint igPointLeftBottom = new ImGearPoint(0, igRasterPage.DIB.Height);
ImGearPoint igPointRightBottom = new ImGearPoint(3 * igRasterPage.DIB.Width / 4, 3 * igRasterPage.DIB.Height / 4);
//Background color to fill in after adjusting the corners of the image.
ImGearPixel igPixel = new ImGearPixel(igRasterPage.DIB.ChannelCount, igRasterPage.DIB.BitsPerChannel);
//Set the color to a dark gray based on the bits per channel.
for (int i = 0; i < igPixel.ChannelCount; ++i)
igPixel[i] = (int)Math.Pow(2, igRasterPage.DIB.BitsPerChannel) / 4;
//Apply the perspective change.
ImGearEffects.Perspective(
igRasterPage, igPointLeftTop, igPointRightTop,
igPointLeftBottom, igPointRightBottom, igPixel);
'Sample usage of Perspective function.
Dim igPointLeftTop As ImGearPoint, igPointRightTop As ImGearPoint
Dim igPointLeftBottom As ImGearPoint, igPointRightBottom As ImGearPoint
'New positions for the 4 corners of the image
igPointLeftTop = New ImGearPoint(igRasterPage.DIB.Width / 4, igRasterPage.DIB.Height / 4)
igPointRightTop = New ImGearPoint(igRasterPage.DIB.Width, 0)
igPointLeftBottom = New ImGearPoint(0, igRasterPage.DIB.Height)
igPointRightBottom = New ImGearPoint(3 * igRasterPage.DIB.Width / 4, 3 * igRasterPage.DIB.Height / 4)
'Background color to fill in after adjusting the corners of the image.
Dim igPixel As New ImGearPixel(igRasterPage.DIB.ChannelCount, igRasterPage.DIB.BitsPerChannel)
For i As Integer = 0 To igPixel.ChannelCount - 1
igPixel(i) = CInt(Math.Pow(2, igRasterPage.DIB.BitsPerChannel)) / 4
Next
'Set the color to a dark gray based on the bits per channel.
'Apply the perspective change.
ImGearEffects.Perspective(igRasterPage, igPointLeftTop, igPointRightTop, _
igPointLeftBottom, igPointRightBottom, igPixel)
See Also