winform 图片压缩保存图片程序
时间: 2023-12-03 10:04:09 浏览: 102
你可以使用C#中的System.Drawing命名空间来实现WinForm图片压缩和保存图片的功能。下面是一个简单的示例代码,演示了如何使用质量压缩保存图片。
```csharp
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
namespace ImageCompression
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btnCompress_Click(object sender, EventArgs e)
{
// 选择图片文件
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Image Files (*.jpg, *.png, *.bmp)|*.jpg;*.png;*.bmp";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 加载图片
Image image = Image.FromFile(openFileDialog.FileName);
// 设置压缩质量(1-100范围内)
int compressionQuality = 50;
// 创建一个EncoderParameters对象,用于设置图像的压缩质量
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, compressionQuality);
// 获取JPEG编码器
ImageCodecInfo jpegEncoder = GetEncoder(ImageFormat.Jpeg);
// 设置保存路径
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "JPEG Image|*.jpg";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// 保存压缩后的图片
image.Save(saveFileDialog.FileName, jpegEncoder, encoderParams);
MessageBox.Show("图片保存成功!");
}
}
}
// 获取指定格式的编码器
private static ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
}
}
```
请注意,此示例仅展示了基本的图片压缩和保存功能。你可以根据你的需要进行修改和扩展。另外,为了让上述代码能够正常运行,你需要在Visual Studio中创建一个Windows Forms应用程序,并将上述代码放入主窗体类中。
阅读全文