Visual Basic
C#
Managed Extensions for C++
C++/CLI
Parameters
- startColumn
- X coordinate of top-left point of area to be updated.
- startRow
- Y coordinate of top-left point of area to be updated.
- endColumn
- X coordinate of bottom-right point of area to be updated.
- endRow
- Y coordinate of bottom-right point of area to be updated.
- pixels
- New values for the pixels being updated.
C# | Copy Code |
---|---|
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); |
Visual Basic | Copy Code |
---|---|
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) |