Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 21852|Отговор: 1

[Източник] Алгоритъм за компресия на изображения в C#

[Копирай линк]
Публикувано в 23.11.2015 г. 19:31:40 ч. | | |
  1. /// <summary>
  2.     /// 壓縮圖片 /// </summary>
  3.     /// <param name="fileStream">圖片流</param>
  4.     /// <param name="quality">壓縮質量0-100之間 數值越大質量越高</param>
  5.     /// <returns></returns>
  6.     private byte[] CompressionImage(Stream fileStream, long quality) {
  7.         using (System.Drawing.Image img = System.Drawing.Image.FromStream(fileStream)) {
  8.             using (Bitmap bitmap = new Bitmap(img)) {
  9.                 ImageCodecInfo CodecInfo = GetEncoder(img.RawFormat);
  10.                 System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
  11.                 EncoderParameters myEncoderParameters = new EncoderParameters(1);
  12.                 EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
  13.                 myEncoderParameters.Param[0] = myEncoderParameter;
  14.                 using (MemoryStream ms = new MemoryStream()) {
  15.                     bitmap.Save(ms, CodecInfo, myEncoderParameters);
  16.                     myEncoderParameters.Dispose();
  17.                     myEncoderParameter.Dispose();
  18.                     return ms.ToArray();
  19.                 }
  20.             }
  21.         }
  22.     }
  23. 調用:CompressionImage(stream,0L)//最低質量 1M jpg圖大概能壓成180k左右
Копирай код






Предишен:Неподдържан пикселен формат на изходното или шаблонното изображение
Следващ:Байт[], изображение, битмап
 Хазяин| Публикувано в 24.11.2015 г. 11:10:10 ч. |
  1. private static ImageCodecInfo GetEncoder(ImageFormat format)
  2.         {
  3.             ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
  4.             foreach (ImageCodecInfo codec in codecs)
  5.             {
  6.                 if (codec.FormatID == format.Guid)
  7.                 { return codec; }
  8.             } return null;
  9.         }
Копирай код


Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com