ImageGear21.Core Assembly > ImageGear.Core Namespace > ImGearDIB Class : UpdateAreaFrom Method |
'Declaration Public MustOverride Sub UpdateAreaFrom( _ ByVal startColumn As Integer, _ ByVal startRow As Integer, _ ByVal endColumn As Integer, _ ByVal endRow As Integer, _ ByVal pixels As ImGearPixelArray _ )
'Usage Dim instance As ImGearDIB Dim startColumn As Integer Dim startRow As Integer Dim endColumn As Integer Dim endRow As Integer Dim pixels As ImGearPixelArray instance.UpdateAreaFrom(startColumn, startRow, endColumn, endRow, pixels)
public abstract void UpdateAreaFrom( int startColumn, int startRow, int endColumn, int endRow, ImGearPixelArray pixels )
public: abstract void UpdateAreaFrom( int startColumn, int startRow, int endColumn, int endRow, ImGearPixelArray* pixels )
public: abstract void UpdateAreaFrom( int startColumn, int startRow, int endColumn, int endRow, ImGearPixelArray^ pixels )
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)