// TODO: Move code from XImage to this class. /// <summary> /// Initializes a new instance of the <see cref="XBitmapImage"/> class. /// </summary> internal XBitmapImage(int width, int height) { #if GDI || CORE_WITH_GDI try { Lock.EnterGdiPlus(); // Create a default 24 bit ARGB bitmap. _gdiImage = new Bitmap(width, height); } finally { Lock.ExitGdiPlus(); } #endif #if WPF DiagnosticsHelper.ThrowNotImplementedException("CreateBitmap"); #endif #if NETFX_CORE DiagnosticsHelper.ThrowNotImplementedException("CreateBitmap"); #endif #if CORE || GDI && !WPF // Prevent unreachable code error Initialize(); #endif }
/// <summary> /// Saves the image on the specified stream in PNG format. /// </summary> public override void Save(Stream stream) { if (Source == null) { throw new InvalidOperationException("No image source."); } #if CORE_WITH_GDI || GDI if (Source.AssociatedGraphics != null) { Source.DisassociateWithGraphics(); Debug.Assert(Source.AssociatedGraphics == null); } try { Lock.EnterGdiPlus(); Source._gdiImage.Save(stream, ImageFormat.Png); } finally { Lock.ExitGdiPlus(); } #endif #if WPF DiagnosticsHelper.ThrowNotImplementedException("Save..."); #endif }