public UnmanagedImage Clone( )
{
// allocate memory for the image
IntPtr newImageData = System.Runtime.InteropServices.Marshal.AllocHGlobal( stride * height );
UnmanagedImage newImage = new UnmanagedImage( newImageData, width, height, stride, pixelFormat );
newImage.mustBeDisposed = true;
AForge.SystemTools.CopyUnmanagedMemory( newImageData, imageData, stride * height );
return newImage;
}