ImGearPage igPage;
// Load an image into a ImGearPage object
using (FileStream localFile = new FileStream(localFilePath, FileMode.Open))
igPage = ImGearFileFormats.LoadPage(localFile, 0);
// Get the upper left square of the image to perform a transpose on.
int transposeSize;
if ( igPage.DIB.Height > igPage.DIB.Width)
transposeSize = igPage.DIB.Width / 2;
else
transposeSize = igPage.DIB.Height / 2;
ImGearPixelArray igPixelArray = igPage.DIB.GetAreaCopy(0, 0, transposeSize - 1, transposeSize - 1);
// Transpose the pixels in igPixelArray
int channelData;
int transposePosition1, transposePosition2;
for (int row = 1; row < transposeSize; ++ row)
for (int column = 0; column < row; ++column)
{
transposePosition1 = (row * transposeSize) + column;
transposePosition2 = (column * transposeSize) + row;
for (int channel = 0; channel < igPixelArray.ChannelCount; channel++)
{
channelData = igPixelArray[transposePosition1,channel];
igPixelArray[transposePosition1, channel] = igPixelArray[transposePosition2,channel];
igPixelArray[transposePosition2, channel] = channelData;
}
}
// Update the original image with the transposed array
igPage.DIB.UpdateAreaFrom(0, 0, transposeSize - 1, transposeSize - 1, igPixelArray);
Dim igPage As ImGearPage
'Load an image into a ImGearPage object
Dim localFile As FileStream = New FileStream(localFilePath, FileMode.Open)
Try
igPage = ImGearFileFormats.LoadPage(localFile, 0)
Finally
localFile.Close()
End Try
'Get the upper left square of the image to perform a transpose on.
Dim transposeSize As Integer
If (igPage.DIB.Height > igPage.DIB.Width) Then
transposeSize = igPage.DIB.Width / 2
Else
transposeSize = igPage.DIB.Height / 2
End If
Dim igPixelArray As ImGearPixelArray = igPage.DIB.GetAreaCopy(0, 0, transposeSize - 1, transposeSize - 1)
'Transpose the pixels in igPixelArray
Dim channelData, transposePosition1, transposePosition2 As Integer
For row As Integer = 1 To transposeSize - 1
For column As Integer = 0 To row - 1
transposePosition1 = (row * transposeSize) + column
transposePosition2 = (column * transposeSize) + row
For channel As Integer = 0 To igPixelArray.ChannelCount - 1
channelData = igPixelArray(transposePosition1, channel)
igPixelArray(transposePosition1, channel) = igPixelArray(transposePosition2, channel)
igPixelArray(transposePosition2, channel) = channelData
Next
Next
Next
'Update the original image with the transposed array
igPage.DIB.UpdateAreaFrom(0, 0, transposeSize - 1, transposeSize - 1, igPixelArray)