Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }