阅读量:2
你可以使用C#中的System.Drawing命名空间来实现图片的压缩。下面是一个简单的示例代码,演示如何将图片压缩到指定的大小:
using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; public class ImageCompressor { public void CompressImage(string sourcePath, string outputPath, int maxWidth, int maxHeight) { using (Image sourceImage = Image.FromFile(sourcePath)) { double aspectRatio = (double)sourceImage.Width / sourceImage.Height; int newWidth = maxWidth; int newHeight = (int)(maxWidth / aspectRatio); if (newHeight > maxHeight) { newHeight = maxHeight; newWidth = (int)(maxHeight * aspectRatio); } using (Bitmap compressedImage = new Bitmap(newWidth, newHeight)) { using (Graphics graphics = Graphics.FromImage(compressedImage)) { graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; graphics.DrawImage(sourceImage, 0, 0, newWidth, newHeight); } compressedImage.Save(outputPath, ImageFormat.Jpeg); } } } } class Program { static void Main() { ImageCompressor compressor = new ImageCompressor(); compressor.CompressImage("source.jpg", "compressed.jpg", 800, 600); } }
在上面的示例代码中,CompressImage
方法接受源图片的路径、输出路径以及目标宽度和高度作为参数。算法会计算出适合目标宽度和高度的图片尺寸,并将源图片按照这个尺寸进行压缩保存为JPEG格式。您可以根据需要调整压缩质量和输出格式。