C#批量图片压缩并保存
时间: 2023-12-01 21:53:44 浏览: 146
压缩图片.zip源码C#WinForm实例源码适合研究学习技术
你可以使用.NET Framework中的System.Drawing命名空间来进行图片压缩操作。以下是一个示例代码,可以将指定目录下的所有图片进行批量压缩并保存到指定目录中:
```csharp
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
namespace ImageCompression
{
class Program
{
static void Main(string[] args)
{
// 指定原始图片目录和压缩后保存的目录
string sourceDir = @"C:\source";
string targetDir = @"C:\target";
// 获取原始图片目录中的所有图片文件
string[] imageFiles = Directory.GetFiles(sourceDir, "*.jpg");
// 遍历每个图片文件,并进行压缩
foreach (string imagePath in imageFiles)
{
// 加载图片
using (Bitmap image = new Bitmap(imagePath))
{
// 定义压缩后的宽度和高度
int targetWidth = 800;
int targetHeight = (int)(image.Height * ((float)targetWidth / image.Width));
// 创建一个新的位图,并设置宽度和高度
Bitmap targetImage = new Bitmap(targetWidth, targetHeight);
// 创建一个Graphics对象,并将原始图片绘制到新位图中
using (Graphics graphics = Graphics.FromImage(targetImage))
{
graphics.DrawImage(image, new Rectangle(0, 0, targetWidth, targetHeight));
}
// 定义压缩后的图片保存路径,并保存图片
string targetPath = Path.Combine(targetDir, Path.GetFileName(imagePath));
targetImage.Save(targetPath, ImageFormat.Jpeg);
}
}
}
}
}
```
在上述示例代码中,我们定义了一个源图片目录和一个目标保存目录,并使用`Directory.GetFiles`方法获取源目录中的所有`.jpg`文件。然后,我们遍历每个图片文件,并使用`Bitmap`类加载原始图片。接着,我们计算压缩后的图片宽度和高度,并使用`Graphics`对象将原始图片绘制到新位图中。最后,我们将压缩后的图片保存到目标目录中。
阅读全文