/// <summary> /// Save the region of a surface to a stream /// </summary> /// <param name="surface"></param> /// <param name="region"></param> /// <param name="stream"></param> /// <param name="outputSettings"></param> /// <returns></returns> public static bool SaveToStream(ISurface surface, Region region, Stream stream, OutputSettings outputSettings) { Image imageToSave = null; bool disposeImage = CreateImageFromSurface(surface, outputSettings, out imageToSave); bool ret = SaveToStream(ImageOperator.CloneArea(imageToSave, region), stream, outputSettings); if (disposeImage && imageToSave != null) { // cleanup if needed imageToSave.Dispose(); } return(ret); }
public static IFastBitmap CreateCloneOf(Image source, PixelFormat pixelFormat, Rectangle area) { Bitmap destination = ImageOperator.CloneArea(source, area, pixelFormat); if (destination != null) { try { FastBitmap fastBitmap = Create(destination) as FastBitmap; fastBitmap.NeedsDispose = true; fastBitmap.Left = area.Left; fastBitmap.Top = area.Top; return(fastBitmap); } catch (Exception ex) { log.Error("Failed to create FastBitmap, " + ex.Message); } } return(null); }