ImageWatermarkerTests.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.IO;
  3. using Masuit.Tools.Media;
  4. using SixLabors.ImageSharp;
  5. using SixLabors.ImageSharp.Formats.Jpeg;
  6. using SixLabors.ImageSharp.PixelFormats;
  7. using Xunit;
  8. namespace Masuit.Tools.Abstractions.Test.Media;
  9. public class ImageWatermarkerTests
  10. {
  11. [Fact]
  12. public void AddWatermark_ShouldAddImageWatermark()
  13. {
  14. var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "test4.jpg");
  15. using var image = new Image<Rgba32>(100, 100);
  16. image.Save(imagePath);
  17. var watermarkPath = Path.Combine(Directory.GetCurrentDirectory(), "watermark.png");
  18. using var watermark = new Image<Rgba32>(20, 20);
  19. watermark.Save(watermarkPath);
  20. using var imageStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
  21. using var watermarkStream = new FileStream(watermarkPath, FileMode.Open, FileAccess.Read);
  22. var watermarker = new ImageWatermarker(imageStream);
  23. var resultStream = watermarker.AddWatermark(watermarkStream);
  24. Assert.NotNull(resultStream);
  25. Assert.True(resultStream.Length > 0);
  26. try
  27. {
  28. File.Delete(imagePath);
  29. File.Delete(watermarkPath);
  30. }
  31. catch (Exception e)
  32. {
  33. }
  34. }
  35. [Fact]
  36. public void AddWatermark_ShouldAddImageWatermarkWithSkipSmallImages()
  37. {
  38. var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "test5.jpg");
  39. using var image = new Image<Rgba32>(50, 50);
  40. image.Save(imagePath);
  41. var watermarkPath = Path.Combine(Directory.GetCurrentDirectory(), "watermark.png");
  42. using var watermark = new Image<Rgba32>(20, 20);
  43. watermark.Save(watermarkPath);
  44. using var imageStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
  45. using var watermarkStream = new FileStream(watermarkPath, FileMode.Open, FileAccess.Read);
  46. var watermarker = new ImageWatermarker(imageStream, new JpegEncoder(), true, 10000);
  47. var resultStream = watermarker.AddWatermark(watermarkStream);
  48. Assert.NotNull(resultStream);
  49. Assert.True(resultStream.Length > 0);
  50. try
  51. {
  52. File.Delete(imagePath);
  53. File.Delete(watermarkPath);
  54. }
  55. catch (Exception e)
  56. {
  57. }
  58. }
  59. }