private static DdsImage CreateDdsPreview(Stream stream) { Contract.Requires(stream != null); stream.Seek(0, SeekOrigin.Begin); DdsImage image = null; try { image = new DdsImage(stream); } catch (Exception) { return(null); } if (!image.IsValid) { image.Dispose(); return(null); } stream.Dispose(); return(image); }
/// <summary> /// Set's preview to DDS image. /// </summary> /// <param name="stream">DDS image stream.</param> private void SetDdsPreview(DdsImage image) { Contract.Requires(image != null); IntPtr hBitmap = image.BitmapImage.GetHbitmap(); BitmapSource source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); this.PreviewImageBox.Source = source; NativeMethods.DeleteObject(hBitmap); image.Dispose(); ChangeControlsVisibilityForFileType(PreviewFileType.Dds); SetTextWithTip(this.PreviewText, "Preview", source.PixelWidth + "x" + source.PixelHeight); }