ImageHelper.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Drawing.Imaging;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace TeamAAS_VP.Core
  9. {
  10. public class ImageHelper
  11. {
  12. /// <summary>
  13. /// 压缩并保存图片
  14. /// </summary>
  15. /// <param name="bitmap"></param>
  16. /// <param name="path">目标图像存储路径JPEG</param>
  17. /// <param name="quality">压缩等级,0到100,0 最差质量,100 最佳</param>
  18. public static void CompressImage(Bitmap bitmap, string path, long quality = 100)
  19. {
  20. ImageCodecInfo codecInfo = GetEncoderInfo("image/jpeg");
  21. System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.Quality;
  22. EncoderParameters parameters = new EncoderParameters(1);
  23. EncoderParameter parameter = new EncoderParameter(encoder, quality);
  24. parameters.Param[0] = parameter;
  25. bitmap.Save(path, codecInfo, parameters);
  26. bitmap.Dispose();
  27. parameter.Dispose();
  28. parameters.Dispose();
  29. }
  30. private static ImageCodecInfo GetEncoderInfo(String mimeType)
  31. {
  32. int j;
  33. ImageCodecInfo[] encoders;
  34. encoders = ImageCodecInfo.GetImageEncoders();
  35. for (j = 0; j < encoders.Length; ++j)
  36. {
  37. if (encoders[j].MimeType == mimeType)
  38. return encoders[j];
  39. }
  40. return null;
  41. }
  42. }
  43. }