保存图片时,设置压缩质量

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
namespace SaveImageHigh
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
System.Drawing.Image image = System.Drawing.Image.FromFile("D:\\111.jpg");
SaveImageForSpecifiedQuality(image, "D:\\222.jpg", 100, ImageFormat.Jpeg);
image.Dispose();
}
/// <summary>
/// 按指定的压缩质量及格式保存图片(微软的Image.Save方法保存到图片压缩质量为75)
/// </summary>
/// <param name="sourceImage">要保存的图片的Image对象</param>
/// <param name="savePath">图片要保存的绝对路径</param>
/// <param name="imageQualityValue">图片要保存的压缩质量,该参数的值为1至100的整数,数值越大,保存质量越好</param>
/// <returns>保存成功,返回true;反之,返回false</returns>
public bool SaveImageForSpecifiedQuality(System.Drawing.Image sourceImage, string savePath, int imageQualityValue,System.Drawing.Imaging.ImageFormat format)
{
//以下代码为保存图片时,设置压缩质量
EncoderParameters encoderParameters = new EncoderParameters();
EncoderParameter encoderParameter = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, imageQualityValue);
encoderParameters.Param[0] = encoderParameter;
try
{
ImageCodecInfo[] ImageCodecInfoArray = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo jpegImageCodecInfo = null;
for (int i = 0; i < ImageCodecInfoArray.Length; i++)
{
if (ImageCodecInfoArray[i].FormatDescription.Equals(format.ToString().ToUpper()))
{
jpegImageCodecInfo = ImageCodecInfoArray[i];
break;
}
}
sourceImage.Save(savePath, jpegImageCodecInfo, encoderParameters);
return true;
}
catch
{
return false;
}
}
}
}

时间: 2024-08-25 07:53:27

保存图片时,设置压缩质量的相关文章

android图片压缩质量参数Bitmap.Config RGB_565等的含义

android图片压缩质量参数 在实用ImageLoader中,在配置DisplayImageOptions时,需要设置.bitmapConfig(Bitmap.Config.RGB_565) 那么这个 Bitmap.Config.RGB_565 是什么意思呢 ? 在android中的大图片一般都要经过压缩才能显示,不然容易发生oom,一般我们压缩的时候都只关注其尺寸方面的大小,其实除了尺寸之外,影响一个图片占用空间的还有其色彩细节. 打开Android.graphics.Bitmap类里有一个

解决使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的问题

0. libjpeg 介绍 libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码.JPEG编码和其他的JPEG功能的实现.这个库由独立JPEG工作组维护.参考:http://zh.wikipedia.org/wiki/Libjpeg 本文基于 libjpeg9 对使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的问题进行分析,文中的代码和解决问题的方法均可结合 libjpeg9 编译通过. 1.使用 libjpeg 保存图片的方法. 不多说,直接上代码: /**

关于Tomcat的点点滴滴(体系架构、处理http请求的过程、安装和配置、目录结构、设置压缩和对中文文件名的支持、以及Catalina这个名字的由来……等)

总结Tomcat的体系架构.处理http请求的过程.安装和配置.目录结构.设置压缩和对中文文件名的支持.以及Catalina这个名字的由来--等. Tomcat和JVM: 一个Tomcat只会启动一个JVM,所有webapps公用一个JVM进程,所以System.exit()会导致影响同个Tomcat中的其他应用.Tomcat通过调用配置的JDK或JRE来启动JVM. 体系结构: Server:A Server element represents the entire Catalina ser

(转)关于Tomcat的点点滴滴(体系架构、处理http请求的过程、安装和配置、目录结构、设置压缩和对中文文件名的支持、以及Catalina这个名字的由来……等)

转自:http://itfish.net/article/41668.html 总结Tomcat的体系架构.处理http请求的过程.安装和配置.目录结构.设置压缩和对中文文件名的支持.以及Catalina这个名字的由来--等. Tomcat和JVM: 一个Tomcat只会启动一个JVM,所有webapps公用一个JVM进程,所以System.exit()会导致影响同个Tomcat中的其他应用.Tomcat通过调用配置的JDK或JRE来启动JVM. 体系结构: Server:A Server el

LoadRunner 学习笔记(2)VuGen运行时设置Run-Time Setting

定义:在Vugen中Run-Time Setting是用来设置脚本运行时所需要的相关选项 注:一般情况下,我们会接触到 Run Logic.Log.Think Time,其他的设置项基本上保持默认设置,特殊项目特殊对待. General  1.Run Logic 运行逻辑,用来设置Action部分重复运行几次 脚本如何运行的,每个action和action之间运行的先后顺序就是在这里设置的 Number of Iterations   只为Run上设置迭代次数(运行的次数),不为Init,End

VC项目程序运行时设置指定目录读取Dll

方法一: 选择当前工程,右击"Properties" -> "Configuration Properties" -> "Debugging",在"Working Directory"设置dll的路径就可以了 方法二:设置项目的环境变量 方法三: CString strDllPath = GetExePath() + _T("System"); SetDllDirectory(strDllPat

Excel导出时设置单元格的格式为文本

问题: 用excel导出数据时,如何设置单元格格式的数字分类为"文本",默认是"常规"? 比如:导出编码0235A089,在Excel查看默认显示的是没有前面的0. 解决方法: 用设置单元格的 NumberFormatLocal 属性即可: xlapp.Selection.NumberFormatLocal = "@" Excel导出时设置单元格的格式为文本,布布扣,bubuko.com

listview当选中某一个item时设置背景色其他的不变

listview当选中某一个item时设置背景色其他的不变: 可以使用listview.setOnFoucsChangeListener(listener) ; /** * listview获得焦点和失去焦点时背景颜色的变化 * @author long * */ private class MyOnFocusChangeListener implements OnFocusChangeListener{ @Override public void onFocusChange(View v, b

磁盘设置压缩导致无法将数据库还原到该硬盘的问题

SQL数据库还原时选择目标文件夹为d:\dbs,提示system.data.sqlclient.sqlerror: XXXXX问及那已压缩,但未驻留在只读数据库或文件组中.必须将此文件解压缩. 经检查发现d盘已设置压缩.因为NTFS 或 FAT 压缩卷上不支持 SQL Server 数据库. 压缩卷无法保证扇区对齐方式的写入,但这种写入在某些情况下是确保事务恢复所必需的. 此外,建议不要将 SQL Server 数据库备份为压缩卷上的磁盘文件. 解决办法: 右键点击D:\dbs,在属性中选择高级