ImageUtilitiesTests.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using System.IO;
  2. using Masuit.Tools.Media;
  3. using SixLabors.ImageSharp;
  4. using SixLabors.ImageSharp.PixelFormats;
  5. using SixLabors.ImageSharp.Processing;
  6. using Xunit;
  7. namespace Masuit.Tools.Abstractions.Test.Media;
  8. public class ImageUtilitiesTests
  9. {
  10. [Theory]
  11. [InlineData("image/pjpeg", true)]
  12. [InlineData("image/jpeg", true)]
  13. [InlineData("image/gif", true)]
  14. [InlineData("image/bmpp", true)]
  15. [InlineData("image/png", true)]
  16. [InlineData("image/tiff", false)]
  17. public void IsWebImage_ShouldReturnCorrectResult(string contentType, bool expected)
  18. {
  19. var result = ImageUtilities.IsWebImage(contentType);
  20. Assert.Equal(expected, result);
  21. }
  22. [Fact]
  23. public void CutImage_ShouldReturnCroppedImage()
  24. {
  25. using var image = new Image<Rgba32>(100, 100);
  26. var rect = new Rectangle(10, 10, 50, 50);
  27. var croppedImage = image.CutImage(rect);
  28. Assert.Equal(50, croppedImage.Width);
  29. Assert.Equal(50, croppedImage.Height);
  30. }
  31. [Fact]
  32. public void CutAndResize_ShouldReturnCroppedAndResizedImage()
  33. {
  34. using var image = new Image<Rgba32>(100, 100);
  35. var rect = new Rectangle(10, 10, 50, 50);
  36. var resizedImage = image.CutAndResize(rect, 25, 25);
  37. Assert.Equal(25, resizedImage.Width);
  38. Assert.Equal(25, resizedImage.Height);
  39. }
  40. [Fact]
  41. public void MakeThumbnail_ShouldCreateThumbnail()
  42. {
  43. using var image = new Image<Rgba32>(100, 100);
  44. var thumbnailPath = Path.Combine(Directory.GetCurrentDirectory(), "thumbnail.jpg");
  45. image.MakeThumbnail(thumbnailPath, 50, 50, ResizeMode.Crop);
  46. Assert.True(File.Exists(thumbnailPath));
  47. using var thumbnail = Image.Load(thumbnailPath);
  48. Assert.Equal(50, thumbnail.Width);
  49. Assert.Equal(50, thumbnail.Height);
  50. File.Delete(thumbnailPath);
  51. }
  52. [Fact]
  53. public void MakeThumbnail_ShouldReturnThumbnailImage()
  54. {
  55. using var image = new Image<Rgba32>(100, 100);
  56. var thumbnail = image.MakeThumbnail(50, 50, ResizeMode.Crop);
  57. Assert.Equal(50, thumbnail.Width);
  58. Assert.Equal(50, thumbnail.Height);
  59. }
  60. [Fact]
  61. public void LDPic_ShouldAdjustBrightness()
  62. {
  63. using var image = new Image<Rgba32>(100, 100);
  64. var adjustedImage = image.LDPic(50);
  65. Assert.NotEqual(image, adjustedImage);
  66. }
  67. [Fact]
  68. public void RePic_ShouldReturnInvertedImage()
  69. {
  70. using var image = new Image<Rgba32>(100, 100);
  71. var invertedImage = image.RePic();
  72. Assert.NotEqual(image, invertedImage);
  73. }
  74. [Fact]
  75. public void Relief_ShouldReturnReliefImage()
  76. {
  77. using var image = new Image<Rgba32>(100, 100);
  78. var reliefImage = image.Relief();
  79. Assert.NotEqual(image, reliefImage);
  80. }
  81. [Fact]
  82. public void ResizeImage_ShouldReturnResizedImage()
  83. {
  84. using var image = new Image<Rgba32>(100, 100);
  85. var resizedImage = image.ResizeImage(50, 50);
  86. Assert.Equal(50, resizedImage.Width);
  87. Assert.Equal(50, resizedImage.Height);
  88. }
  89. [Fact]
  90. public void FilPic_ShouldReturnFilteredImage()
  91. {
  92. using var image = new Image<Rgba32>(100, 100);
  93. var filteredImage = image.FilPic();
  94. Assert.NotEqual(image, filteredImage);
  95. }
  96. [Fact]
  97. public void RevPicLR_ShouldReturnHorizontallyFlippedImage()
  98. {
  99. using var image = new Image<Rgba32>(100, 120);
  100. var flippedImage = image.RevPicLR();
  101. Assert.Equal(image.Width, 100);
  102. Assert.Equal(image.Height, 120);
  103. }
  104. [Fact]
  105. public void RevPicUD_ShouldReturnVerticallyFlippedImage()
  106. {
  107. using var image = new Image<Rgba32>(100, 120);
  108. var flippedImage = image.RevPicUD();
  109. Assert.Equal(image.Width, 100);
  110. Assert.Equal(image.Height, 120);
  111. }
  112. [Fact]
  113. public void Gray_ShouldReturnGrayscaleColor()
  114. {
  115. var color = Color.Red;
  116. var grayColor = color.Gray();
  117. Assert.NotEqual(color, grayColor);
  118. }
  119. [Fact]
  120. public void Reverse_ShouldReturnReversedColor()
  121. {
  122. var color = Color.Red;
  123. var reversedColor = color.Reverse();
  124. Assert.NotEqual(color, reversedColor);
  125. }
  126. [Fact]
  127. public void BWPic_ShouldReturnBlackAndWhiteImage()
  128. {
  129. using var image = new Image<Rgba32>(100, 100);
  130. var bwImage = image.BWPic(50, 50);
  131. Assert.Equal(50, bwImage.Width);
  132. Assert.Equal(50, bwImage.Height);
  133. }
  134. }