Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Bitmap"/> class from a <see cref="System.Drawing.Bitmap"/>.
        /// </summary>
        /// <param name="factory">The factory.</param>
        /// <param name="bitmap">The bitmap.</param>
        /// <param name="options">The options.</param>
        /// <unmanaged>HRESULT IWICImagingFactory::CreateBitmapFromHBITMAP([In] HBITMAP hBitmap,[In, Optional] HPALETTE hPalette,[In] WICBitmapAlphaChannelOption options,[Out, Fast] IWICBitmap** ppIBitmap)</unmanaged>
        public Bitmap(ImagingFactory factory, System.Drawing.Bitmap bitmap, SharpDX.WIC.BitmapAlphaChannelOption options) : base(IntPtr.Zero)
        {
            var hBitmap  = bitmap.GetHbitmap();
            var hPalette = ConvertToHPALETTE(bitmap.Palette);

            try
            {
                factory.CreateBitmapFromHBITMAP(hBitmap, hPalette, options, this);
            }
            finally
            {
                DeleteObject(hBitmap);
                Marshal.FreeHGlobal(hPalette);
            }
        }