In This Topic
Provides access to pixels of the
VintasoftImage object.
Object Model
Syntax
'Declaration
Public NotInheritable Class PixelManipulator
public sealed class PixelManipulator
public __gc __sealed class PixelManipulator
public ref class PixelManipulator sealed
Remarks
All method parameters defining the image coordinates must be specified in the coordinates of the locked region. For example, the coordinate (1; 0) must be used for getting information about pixel data with coordinates (11; 20) if image is locked from the point (10; 20).
Example
This C#/VB.NET code shows how to read scan line from an image, change blue color component value, and save changes.
Class PixelManipulatorExample
Public Sub RunExample()
' load an 24-bpp RGB image from disk
' [ do not forget to set your image file path here! ]
Dim image As New Vintasoft.Imaging.VintasoftImage("c:\original-image.tif")
' get the PixelManipulator object
Dim pixelManipulator As Vintasoft.Imaging.PixelManipulator = image.OpenPixelManipulator()
' set the lock area to full image size
Dim lockRectangle As New System.Drawing.Rectangle(0, 0, image.Width, image.Height)
' lock pixels for read and write
pixelManipulator.LockPixels(lockRectangle, Vintasoft.Imaging.BitmapLockMode.ReadWrite)
' remebmer the stride for performance purposes
Dim stride As Integer = pixelManipulator.Stride
' process image
For y As Integer = 0 To image.Height - 1
' read the next scan line
Dim row As Byte() = pixelManipulator.ReadRowData(y)
For i As Integer = 0 To stride - 1 Step 3
' set every blue color component value to zero
row(i) = 0
Next
' write the modified scan line
pixelManipulator.WriteRowData(y, row)
Next
' unlock pixels
pixelManipulator.UnlockPixels()
' close PixelManipulator and generate the Vintasoft.Imaging.VintasoftImage.Changed event
image.ClosePixelManipulator(True)
' save the processed image to the new file
image.Save("c:\processed-image.tif")
End Sub
End Class
class PixelManipulatorExample
{
public void RunExample()
{
// load an 24-bpp RGB image from disk
// [ do not forget to set your image file path here! ]
Vintasoft.Imaging.VintasoftImage image =
new Vintasoft.Imaging.VintasoftImage(@"c:\original-image.tif");
// get the PixelManipulator object
Vintasoft.Imaging.PixelManipulator pixelManipulator = image.OpenPixelManipulator();
// set the lock area to full image size
System.Drawing.Rectangle lockRectangle =
new System.Drawing.Rectangle(0, 0, image.Width, image.Height);
// lock pixels for read and write
pixelManipulator.LockPixels(lockRectangle, Vintasoft.Imaging.BitmapLockMode.ReadWrite);
// remebmer the stride for performance purposes
int stride = pixelManipulator.Stride;
// process image
for (int y = 0; y < image.Height; y++)
{
// read the next scan line
byte[] row = pixelManipulator.ReadRowData(y);
for (int i = 0; i < stride; i += 3)
{
// set every blue color component value to zero
row[i] = 0;
}
// write the modified scan line
pixelManipulator.WriteRowData(y, row);
}
// unlock pixels
pixelManipulator.UnlockPixels();
// close PixelManipulator and generate the Vintasoft.Imaging.VintasoftImage.Changed event
image.ClosePixelManipulator(true);
// save the processed image to the new file
image.Save(@"c:\processed-image.tif");
}
}
Inheritance Hierarchy
System.Object
 Vintasoft.Imaging.PixelManipulator
Requirements
Target Platforms: .NET9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
See Also