public static IWICBitmap ToBitmap(this IWICImagingFactory factory, IWICBitmapSource source) { if (factory == null) { throw new ArgumentNullException("factory"); } if (source == null) { throw new ArgumentNullException("source"); } IWICBitmap result; factory.CreateBitmapFromSource(source, WICBitmapCreateCacheOption.WICBitmapCacheOnDemand, out result); return(result); }
public static IComObject <IWICBitmap> CreateBitmapFromSource(this IWICImagingFactory factory, IWICBitmapSource source, WICBitmapCreateCacheOption option = WICBitmapCreateCacheOption.WICBitmapNoCache) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } if (source == null) { throw new ArgumentNullException(nameof(source)); } factory.CreateBitmapFromSource(source, option, out var value).ThrowOnError(); return(new ComObject <IWICBitmap>(value)); }
public static IWICBitmapSource GetOrientedImageSource(this IWICImagingFactory factory, IWICBitmapSource source, WICBitmapTransformOptions opt) { if (factory == null) { throw new ArgumentNullException("factory"); } if (opt == WICBitmapTransformOptions.WICBitmapTransformRotate0) { return(source); } IWICBitmap iwicbitmap = null; factory.CreateBitmapFromSource(source, WICBitmapCreateCacheOption.WICBitmapCacheOnDemand, out iwicbitmap); IWICBitmapFlipRotator iwicbitmapFlipRotator = null; factory.CreateBitmapFlipRotator(out iwicbitmapFlipRotator); iwicbitmapFlipRotator.Initialize(iwicbitmap, opt); IWICBitmapSource result = iwicbitmapFlipRotator; GraphicsInteropNativeMethods.SafeReleaseComObject(iwicbitmap); return(result); }