LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 按质量等级压缩图片(二)

admin
2023年2月27日 10:46 本文热度 316

    这一篇我们呢采用的压缩方式跟上一篇是一样的,不同的是,这次我们会同时融入一个等比压缩宽高的方法,这两个一起使用,会使文件空间大幅度减小,同时也可以单独压缩宽高,质量等级不要变(直接用100即可);

实现功能:

    • 压缩图片大小以及质量

开发环境:

开发工具:Visual Studio 2013

.NET Framework版本:4.5

实现代码:

//选择图片路径 private void btnOld_Click(object sender, EventArgs e) {     OpenFileDialog ofd = new OpenFileDialog();     ofd.Filter = "图片|*.jpg;*.jpeg;*.png";     if (ofd.ShowDialog() == DialogResult.OK)     {         txtOld.Text = ofd.FileName;     } }
//选择保存路径 private void btnNew_Click(object sender, EventArgs e) { FolderBrowserDialog fbd = new FolderBrowserDialog(); fbd.ShowNewFolderButton = true; if (fbd.ShowDialog() == DialogResult.OK) { txtNew.Text = fbd.selectedPath; } }
//压缩private void btnCompressSize_Click(object sender, EventArgs e){ ImgSizeCompress(10L); ImgSizeCompress(50L); ImgSizeCompress(70L); MessageBox.Show("成功");}
//压缩方法 private void ImgSizeCompress(long level) { Image img = Image.fromFile(txtOld.Text); ImageFormat imgFormat = img.RawFormat;
Size newSize = new Size(img.Width / 2, img.Height / 2); Bitmap outBmp = new Bitmap(newSize.Width, newSize.Height);
Graphics g = Graphics.fromImage(outBmp); g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.DrawImage(img, new Rectangle(0, 0, newSize.Width, newSize.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel); g.Dispose(); img.Dispose();
EncoderParameters encoderParams = new EncoderParameters(); encoderParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, level);
ImageCodecInfo codecInfo = GetEncoder(imgFormat); string savePath = txtNew.Text + "\\" + DateTime.Now.Ticks + "." + codecInfo.FormatDescription; outBmp.Save(savePath, codecInfo, encoderParams); outBmp.Dispose(); }
private ImageCodecInfo GetEncoder(ImageFormat format) { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); foreach (ImageCodecInfo codec in codecs) { if (codec.FormatID == format.Guid) { return codec; } } return null; }

实现效果:


上面是将宽度和高度分别缩小了一半,看得出来,效果还是比较明显的


该文章在 2023/2/27 10:46:40 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved