狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 大圖片壓縮算法,減少圖片體積

admin
2021年3月18日 11:7 本文熱度 2577

聲明:
圖片壓縮算法,不建議對小圖片進行壓縮,一般文件小于1m的,真心沒必要壓縮,
圖片很小的,例如:幾百KB的圖片,有可能不會減少圖片體積,反而壓縮后更大,也很正常,
請大家合理使用,并不是,所有圖片,越壓縮越好!!!!!
上面是我對2M多的圖片進行了測試,壓縮質(zhì)量設(shè)置了50,壓縮到了800KB,放大和縮小和原圖,幾乎沒有什么區(qū)別。

代碼如下:

private void button3_Click(object sender, EventArgs e)

        {

            using (OpenFileDialog ofd = new OpenFileDialog())

            {

                ofd.Filter = "圖片|*.jpg;*.png;*.gif;*.jpeg;*.bmp";

                if (ofd.ShowDialog() == DialogResult.OK)

                {

                    using (FileStream file = new FileStream(ofd.FileName, FileMode.Open))

                    {

                        var img = CompressionImage(file, 50L);

                        MessageBox.Show(CreateImageFromBytes(AppDomain.CurrentDomain.BaseDirectory + @"\" + Guid.NewGuid().ToString(), img));

                    }

                }

            }

        }

        ///

        public static Image BytesToImage(byte[] buffer)

        {

            MemoryStream ms = new MemoryStream(buffer);

            Image image = System.Drawing.Image.FromStream(ms);

            return image;

        }

        ///

        public static string CreateImageFromBytes(string fileName, byte[] buffer)

        {

            string file = fileName;

            Image image = BytesToImage(buffer);

            ImageFormat format = image.RawFormat;

            if (format.Equals(ImageFormat.Jpeg))

            {

                file += ".jpeg";

            }

            else if (format.Equals(ImageFormat.Png))

            {

                file += ".png";

            }

            else if (format.Equals(ImageFormat.Bmp))

            {

                file += ".bmp";

            }

            else if (format.Equals(ImageFormat.Gif))

            {

                file += ".gif";

            }

            else if (format.Equals(ImageFormat.Icon))

            {

                file += ".icon";

            }

            System.IO.FileInfo info = new System.IO.FileInfo(file);

            System.IO.Directory.CreateDirectory(info.Directory.FullName);

            File.WriteAllBytes(file, buffer);

            return file;

        }

        /// ///

        /// 圖片流

        /// 壓縮質(zhì)量0-100之間 數(shù)值越大質(zhì)量越高

        ///

        private byte[] CompressionImage(Stream fileStream, long quality)

        {

            using (System.Drawing.Image img = System.Drawing.Image.FromStream(fileStream))

            {

                using (Bitmap bitmap = new Bitmap(img))

                {

                    ImageCodecInfo CodecInfo =  GetEncoder(img.RawFormat);

                    System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;

                    EncoderParameters myEncoderParameters = new EncoderParameters(1);

                    EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);

                    myEncoderParameters.Param[0] = myEncoderParameter;

                    using (MemoryStream ms = new MemoryStream())

                    {

                        bitmap.Save(ms, CodecInfo, myEncoderParameters);

                        myEncoderParameters.Dispose();

                        myEncoderParameter.Dispose();

                        return ms.ToArray();

                    }

                }

            }

        }

        private static ImageCodecInfo GetEncoder(ImageFormat format)

        {

            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();

            foreach (ImageCodecInfo codec in codecs)

            {

                if (codec.FormatID == format.Guid)

                { return codec; }

            }

            return null;

        }


該文章在 2021/3/18 11:09:27 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved