Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# 图片压缩

作者:我在坚强也需要有人疼   发布日期:2026-03-12   浏览:58

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public class ImageCompressor
{
    public static void CompressImage(string inputImagePath, string outputImagePath, int quality)
    {
        // 读取原始图片
        using (Image originalImage = Image.FromFile(inputImagePath))
        {
            // 创建编码参数对象,用于设置压缩质量
            EncoderParameters encoderParams = new EncoderParameters(1);
            encoderParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);

            // 获取JPEG编码器
            ImageCodecInfo jpegEncoder = GetEncoder(ImageFormat.Jpeg);

            // 将压缩后的图片保存到指定路径
            originalImage.Save(outputImagePath, jpegEncoder, encoderParams);
        }
    }

    private static ImageCodecInfo GetEncoder(ImageFormat format)
    {
        // 获取所有可用的图像编码器
        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

        // 查找匹配的编码器
        foreach (ImageCodecInfo codec in codecs)
        {
            if (codec.FormatID == format.Guid)
            {
                return codec;
            }
        }
        return null;
    }
}

// 示例用法
class Program
{
    static void Main()
    {
        string inputImagePath = "input.jpg";
        string outputImagePath = "output.jpg";
        int quality = 50; // 压缩质量,范围为0-100

        ImageCompressor.CompressImage(inputImagePath, outputImagePath, quality);
        Console.WriteLine("图片压缩完成!");
    }
}

解释说明:

  1. CompressImage 方法:该方法接收输入图片路径、输出图片路径和压缩质量作为参数。它使用 System.Drawing.Image 类读取图片,并通过 EncoderParameters 设置压缩质量。
  2. GetEncoder 方法:此方法用于获取与指定格式(如 JPEG)匹配的编码器。
  3. Main 方法:这是程序的入口点,展示了如何调用 CompressImage 方法进行图片压缩。

通过调整 quality 参数的值(范围为 0 到 100),你可以控制压缩的程度。较低的值会生成更小的文件,但图片质量也会相应降低。

上一篇:c# exception

下一篇:c# list<>

大家都在看

c# 二进制

c# 创建目录

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站