Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 21852|Odpověď: 1

[Zdroj] Algoritmus komprese obrazu v C#

[Kopírovat odkaz]
Zveřejněno 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左右
Kopírovat kód






Předchozí:Nepodporovaný pixelový formát zdrojového nebo šablonového obrazu
Další:Byte[], Image, Bitmap
 Pronajímatel| Zveřejněno 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.         }
Kopírovat kód


Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com