- Aurigma Graphics Mill 5.5 for .NET
- Introduction
- What's New?
- Overview of Features
- Getting Started
- Programming with Graphics Mill for .NET
- File Formats
- Graphics Mill for .NET Add-ons
- Class Library Reference
- Aurigma.GraphicsMill Namespace
- AbortedException Class
- AdvancedPsdLibraryModule Class
- AviProcessorLibraryModule Class
- Bitmap Class
- BitmapChange Enumeration
- BitmapChangedEventArgs Class
- BitmapChangedEventHandler Delegate
- BitmapChangingEventArgs Class
- BitmapChangingEventHandler Delegate
- BitmapData Class
- BitmapEmptyException Class
- BitmapLockedException Class
- BitmapSavingEventArgs Class
- BitmapSavingEventHandler Delegate
- BitmapStatisticsProvider Class
- ChannelsProvider Class
- CMAdobeModuleLoadException Class
- CMException Class
- CMInappropriateProfileException Class
- CMOpenProfileException Class
- CMTransformException Class
- CmykColor Class
- Color Class
- ColorAdjustmentProvider Class
- ColorChannel Enumeration
- ColorManagementProvider Class
- ColorPalette Class
- ColorPaletteEmptyException Class
- ColorPaletteType Enumeration
- ColorProfile Class
- ColorProfileClass Enumeration
- ColorSpace Enumeration
- ErrorEventArgs Class
- Exception Class
- GlobalSettings Class
- GraphicsMillLibraryModule Class
- GrayScaleColor Class
- Histogram Class
- HistogramMode Enumeration
- ILockable Interface
- IPixelFormatSupport Interface
- IStateNavigable Interface
- ISyncEvents Interface
- ISyncHandler Interface
- IUnitConverter Interface
- LibraryModuleAbstract Class
- LockableObject Class
- MediaProcessorLibraryModule Class
- MessageLoopNotPresentedException Class
- ObjectEmptyException Class
- ObjectLockedException Class
- ObjectNotOpenedException Class
- OperationNotCompletedException Class
- PixelFormat Enumeration
- PixelFormatUtils Class
- ProgressEventArgs Class
- ProgressEventHandler Delegate
- Rational Structure
- RgbColor Class
- StateRestoringEventArgs Class
- StateRestoringEventHandler Delegate
- StopEventHandler Delegate
- StreamWrapper Class
- SyncHandler Class
- SynchronizationMode Enumeration
- TimeoutException Class
- TransformsProvider Class
- TrialPeriodTimeException Class
- UnexpectedException Class
- Unit Enumeration
- UnitConverter Class
- UnitConverterHandler Class
- UnitConverterObject Class
- UnsignedRational Structure
- UnsupportedPixelFormatException Class
- Win32Exception Class
- ZipCompressor Class
- Aurigma.GraphicsMill.AjaxControls Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.Math Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.RedoUndo Namespace
- Aurigma.GraphicsMill.Codecs Namespace
- Aurigma.GraphicsMill.Drawing Namespace
- Aurigma.GraphicsMill.Licensing Namespace
- Aurigma.GraphicsMill.Transforms Namespace
- Aurigma.GraphicsMill.WebControls Namespace
- Aurigma.GraphicsMill.WinControls Namespace
- GraphicsMill Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.Math Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.RedoUndo Namespace (Client Class Library)
- Aurigma.GraphicsMill Namespace
- Samples
- Licensing
- Copyright Notices
BitmapData Class
This class provides direct access to the bitmap pixels.
Namespace:
Aurigma.GraphicsMill
Assembly:
Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
Syntax
Public Class BitmapData _
Inherits LockableObject
public class BitmapData : LockableObject
Remarks
To get this class instance you should use LockBits(Int32, Int32, Int32, Int32) method. After you get it, you can work with this bitmap bits directly. Property Scan0 returns an address to the beginning of the bitmap (the very first pixel). Property Stride holds the offset from the beginning of the row (scan line) to the next row. Property Height contains number of scan lines in the section you lock. Using PixelFormat you can get pixel-specific information. If you need to know how much bytes is taken by the captured area (for example, if you need to allocate buffer of the same size), you can use MemoryUsed property.
If you need you also have an access to the bitmap associated with this bitmap data via Bitmap property. The parameters of the bitmap area you captured are available through Left, Top, Width and Height properties.
After you finished working with the the bitmap data, you should release it by calling UnlockBits(BitmapData) method.
Examples
Aurigma.GraphicsMill.BitmapData bitmapData = bitmap.LockBits();
unsafe
{
byte* pos;
byte* scan0 = (byte*)(bitmapData.Scan0.ToPointer());
int stride = bitmapData.Stride;
int widthInBytes = bitmapData.Width * bitmapData.BitsPerPixel / 8;
int height = bitmapData.Height;
for (int j = 0; j < height; j++)
{
pos = scan0 + stride * j;
for (int i = 0; i < widthInBytes; i++)
{
*pos = (byte)(255 - *pos);
pos++;
}
}
}
bitmap.UnlockBits(bitmapData);
Inheritance Hierarchy
Thread Safety
Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.Object Model




