ImagesFunctions.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using Microsoft.Win32;
  2. using System;
  3. using System.IO;
  4. using System.Windows.Media.Imaging;
  5. namespace MyTests
  6. {
  7. internal class ImagesFunctions
  8. {
  9. public static byte[] BitmapSourceToByteArray(BitmapSource image)
  10. {
  11. #region Кодирование картинки
  12. using (var stream = new MemoryStream())
  13. {
  14. var encoder = new PngBitmapEncoder();
  15. encoder.Frames.Add(BitmapFrame.Create(image));
  16. encoder.Save(stream);
  17. return stream.ToArray();
  18. }
  19. #endregion
  20. }
  21. public static BitmapImage SelectImage()
  22. {
  23. #region Выбор картинки
  24. OpenFileDialog op = new OpenFileDialog
  25. {
  26. Title = "Выбрать изображение",
  27. Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" +
  28. "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
  29. "Portable Network Graphic (*.png)|*.png"
  30. };
  31. if (op.ShowDialog() == true)
  32. return new BitmapImage(new Uri(op.FileName));
  33. else
  34. return null;
  35. #endregion
  36. }
  37. public static BitmapImage NewImage(Users user)
  38. {
  39. try
  40. {
  41. MemoryStream ms = new MemoryStream(user.Image);
  42. BitmapImage image = new BitmapImage();
  43. image.BeginInit();
  44. image.StreamSource = ms;
  45. image.EndInit();
  46. return image;
  47. }
  48. catch
  49. {
  50. return new BitmapImage(new Uri("../Resources/StandartImage.png", UriKind.RelativeOrAbsolute));
  51. }
  52. }
  53. public static BitmapImage NewImage(Tests test)
  54. {
  55. try
  56. {
  57. MemoryStream ms = new MemoryStream(test.Image);
  58. BitmapImage image = new BitmapImage();
  59. image.BeginInit();
  60. image.StreamSource = ms;
  61. image.EndInit();
  62. return image;
  63. }
  64. catch
  65. {
  66. return new BitmapImage(new Uri("../Resources/Approval.png", UriKind.RelativeOrAbsolute));
  67. }
  68. }
  69. }
  70. }