'''' This code is part of Document Solutions for Imaging demos.'' Copyright (c) MESCIUS inc. All rights reserved.''ImportsSystem.IOImportsSystem.DrawingImportsSystem.Collections.GenericImportsSystem.LinqImportsSystem.NumericsImportsGrapeCity.Documents.DrawingImportsGrapeCity.Documents.Imaging '' This sample demonstrates how to swap color channels on an image'' using pixel access. Here we swap red and blue channels to'' change the way the image looks.PublicClassSwapColorsFunctionGenerateImage(ByVal pixelSize AsSize,ByVal dpi AsSingle,ByVal opaque AsBoolean,OptionalByVal sampleParams AsString() = Nothing) AsGcBitmap Dim bmp = NewGcBitmap(pixelSize.Width, pixelSize.Height, opaque, dpi, dpi)Using bmpSrc = NewGcBitmap(Path.Combine("Resources", "ImagesBis", "alpamayo-sq.jpg"))'' BitBlt requires the opacity of both images to be the same: bmpSrc.Opaque = opaque'' Render source image onto the target bitmap'' (generally we might want to resize the source image first,'' but in this case we just know that the source image has'' the same size as the target, so skip this step): bmp.BitBlt(bmpSrc, 0, 0) Using g = bmp.CreateGraphics()For i = 0To bmp.PixelWidth - 1For j = 0To bmp.PixelHeight - 1Dim px = bmp(i, j) px = ((px And&HFFUI) << 16) Or ((px And&HFF0000UI) >> 16) Or (px And&HFF00FF00UI) bmp(i, j) = pxNextNext'' Draw the original image in the bottom right corner for reference:Dim sx = pixelSize.Width / 3, sy = pixelSize.Height / 3 g.DrawImage(bmpSrc, NewRectangleF(sx * 2, sy * 2, sx, sy), Nothing, ImageAlign.StretchImage)EndUsingEndUsingReturn bmpEndFunctionEndClass