Document.Preview.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using PixiEditor.Models.Controllers;
  2. using PixiEditor.Models.ImageManipulation;
  3. using PixiEditor.Models.Layers;
  4. using System.Windows.Media.Imaging;
  5. namespace PixiEditor.Models.DataHolders
  6. {
  7. public partial class Document
  8. {
  9. private WriteableBitmap previewImage;
  10. public WriteableBitmap PreviewImage
  11. {
  12. get => previewImage;
  13. }
  14. private Layer previewLayer;
  15. private SingleLayerRenderer previewLayerRenderer;
  16. public Layer PreviewLayer
  17. {
  18. get => previewLayer;
  19. set
  20. {
  21. previewLayer = value;
  22. previewLayerRenderer?.Dispose();
  23. previewLayerRenderer = previewLayer == null ? null : new SingleLayerRenderer(previewLayer, Width, Height);
  24. RaisePropertyChanged(nameof(PreviewLayer));
  25. RaisePropertyChanged(nameof(PreviewLayerRenderer));
  26. }
  27. }
  28. public SingleLayerRenderer PreviewLayerRenderer
  29. {
  30. get => previewLayerRenderer;
  31. }
  32. public void UpdatePreviewImage()
  33. {
  34. previewImage = BitmapUtils.GeneratePreviewBitmap(this, 30, 20);
  35. RaisePropertyChanged(nameof(PreviewImage));
  36. }
  37. public void GeneratePreviewLayer()
  38. {
  39. PreviewLayer = new Layer("_previewLayer", Width, Height);
  40. }
  41. }
  42. }