博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图片压缩技术
阅读量:6498 次
发布时间:2019-06-24

本文共 1402 字,大约阅读时间需要 4 分钟。

 private string ImgComPress(string fromBase64)

        {
            Bitmap bitMap = new Bitmap(new MemoryStream(Convert.FromBase64String(fromBase64)));
            //Bitmap bitMap = new Bitmap(Server.MapPath("./1.jpg"));
            ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
            System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
            EncoderParameters myEncoderParameters = new EncoderParameters(1);
            EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 80L);
            myEncoderParameters.Param[0] = myEncoderParameter;
            Bitmap newbitMap = null;
            if (bitMap.Height > 1080)
            {
                float newWidth = ((float)bitMap.Width / bitMap.Height) * 1080;
                newbitMap = new Bitmap(bitMap, (int)newWidth, 1080);//从指定的现有图像并使用指定的大小初始化 Bitmap 类的新实例。
            }
            using (MemoryStream ms = new MemoryStream())
            {
                if (newbitMap != null)
                {
                    newbitMap.Save(ms, jgpEncoder, myEncoderParameters);
                }
                else
                {
                    bitMap.Save(ms, jgpEncoder, myEncoderParameters);
                    bitMap.Save(Server.MapPath("./2.jpg"));
                    bitMap.Save(Server.MapPath("./2_1.jpg"), jgpEncoder, myEncoderParameters);
                }
                if (ms.Length >= 1)
                {
                    return Convert.ToBase64String(ms.GetBuffer());
                }
            }
            return fromBase64;
        }
        private ImageCodecInfo GetEncoder(ImageFormat format)
        {
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }

转载于:https://www.cnblogs.com/tx720/p/5607114.html

你可能感兴趣的文章
最常用的css选择器及兼容性 +几个好用却不多见的 nth-child等
查看>>
三、数据类型
查看>>
centos设置固定IP方法
查看>>
地址本在不同手机间的迁移
查看>>
lombox的用法(省去了set/get/NoArgsConstructor/AllArgsConstructor)
查看>>
Linux Test Project 测试套件说明
查看>>
固定资产打印条码标签应用方案
查看>>
语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...
查看>>
oracle相关操作
查看>>
oracle数据库同步交换的方法
查看>>
Java读取Properties配置文件
查看>>
抓取网页的脚本 【修复】
查看>>
php 的 危 险 参 数
查看>>
linux系统小记
查看>>
Centos6.4最小化安装系统初始化脚本
查看>>
PaaS变厚了
查看>>
赛门铁克开启“容灾即服务”时代
查看>>
复杂度归纳--小结
查看>>
基础篇9-python基本数据结构-列表
查看>>
PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
查看>>