Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 21852|Jawab: 1

[Sumber] Algoritma kompresi gambar C#

[Salin tautan]
Diposting pada 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左右
Salin kode






Mantan:Format piksel gambar sumber atau templat yang tidak didukung
Depan:Byte[], Gambar, Bitmap
 Tuan tanah| Diposting pada 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.         }
Salin kode


Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com