c#图片缩放图片剪切功能实现(等比缩放)

C#图片缩放图片剪切功能实现(等比缩放)

在C#中,实现缩放和剪切图片是很常见的需求。本文将介绍如何使用C#实现等比缩放图片,并提供两个示例说明。

1. 等比缩放图片

1.1 引用命名空间

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

1.2 创建一个函数

public static void ZoomImage(string fileName, int width, int height)
{
    using (Image img = Image.FromFile(fileName))
    {
        int sourceWidth = img.Width;      // 原始图像的宽度
        int sourceHeight = img.Height;    // 原始图像的高度

        float scale = Math.Min((float)width / sourceWidth, (float)height / sourceHeight); // 计算缩放比例

        int destWidth = (int)(sourceWidth * scale);    // 计算缩放后的图像宽度
        int destHeight = (int)(sourceHeight * scale);  // 计算缩放后的图像高度

        Bitmap bitmap = new Bitmap(destWidth, destHeight); // 创建缩放后的位图对象

        using (Graphics graphics = Graphics.FromImage(bitmap))
        {
            graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;  // 图像质量设置为最高
            graphics.DrawImage(img, new Rectangle(0, 0, destWidth, destHeight), new Rectangle(0, 0, sourceWidth, sourceHeight), GraphicsUnit.Pixel); // 绘制缩放后的位图对象
        }

        bitmap.Save(Path.Combine(Path.GetDirectoryName(fileName), "zoom_" + Path.GetFileName(fileName)), ImageFormat.Jpeg); // 保存缩放后的位图对象
    }
}

1.3 调用函数

ZoomImage("test.jpg", 100, 100); // 缩放test.jpg后的大小为100x100

2. 图片剪切功能实现

2.1 引用命名空间

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

2.2 创建一个函数

public static void CropImage(string fileName, int x, int y, int width, int height)
{
    using (Image img = Image.FromFile(fileName))
    {
        Bitmap bitmap = new Bitmap(width, height); // 创建剪切后的位图对象

        using (Graphics graphics = Graphics.FromImage(bitmap))
        {
            graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;  // 图像质量设置为最高
            graphics.DrawImage(img, new Rectangle(0, 0, width, height), new Rectangle(x, y, width, height), GraphicsUnit.Pixel); // 绘制剪切后的位图对象
        }

        bitmap.Save(Path.Combine(Path.GetDirectoryName(fileName), "crop_" + Path.GetFileName(fileName)), ImageFormat.Jpeg); // 保存剪切后的位图对象
    }
}

2.3 调用函数

CropImage("test.jpg", 50, 50, 100, 100); // 剪切test.jpg,以(50,50)为起点,剪切大小为100x100

以上就是C#图片缩放和剪切实现的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#图片缩放图片剪切功能实现(等比缩放) - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • C# WORD操作实现代码

    下面是详细的C# WORD操作实现代码攻略。 环境准备 安装Visual Studio 安装微软官方提供的Office插件 Word操作示例 示例1:创建新的Word文档并添加内容 using Word = Microsoft.Office.Interop.Word; Word.Application wordApp = new Word.Applicati…

    C# 2023年5月15日
    00
  • EF Core项目中不同数据库需要的安装包介绍

    下面是EF Core项目中不同数据库需要的安装包介绍的完整攻略。 1. MySQL数据库 第一步:添加依赖 在创建EF Core项目时,需要添加MySql.Data.EntityFrameworkCore这个NuGet依赖,它是与MySQL数据库连接库一起使用的。可以在NuGet 包管理器中搜索MySql.Data.EntityFrameworkCore并将…

    C# 2023年6月3日
    00
  • C# BackgroundWorker用法详解

    我们来详细讲解一下C#中的BackgroundWorker用法。 一、BackgroundWorker 是什么? 在C#中,BackgroundWorker是一个多线程组件,用于在后台执行一个操作并在主界面上更新相应的进度。它避免了在主线程中直接执行操作而引起的冻结UI界面的问题。 二、BackgroundWorker 的声明 我们使用 Background…

    C# 2023年5月15日
    00
  • Unity实现截屏以及根据相机画面截图

    Unity可以通过代码实现截屏及相机画面截图,具体步骤如下: 实现截屏 确定截图尺寸 首先需要确定需要截图的尺寸,可以在代码中设置。代码如下: int screenWidth = Screen.width; int screenHeight = Screen.height; 创建一个RenderTexture RenderTexture是Unity中的渲染纹…

    C# 2023年6月3日
    00
  • 利用WCF双工模式实现即时通讯

    下面是关于“利用WCF双工模式实现即时通讯”的完整攻略,包含两个示例。 1. 什么是WCF双工模式 WCF双工模式是一种WCF通信模式,它允许客户端和服务端之间进行双向通信。在WCF双工模式中,客户端和服务端都可以发送和接收消息,这使得WCF双工模式非常适合实现即时通讯。 2. 示例1:创建WCF服务 以下是一个示例,演示如何创建WCF服务: using S…

    C# 2023年5月15日
    00
  • 如何在 ASP.NET Core Web API 中处理 Patch 请求

    下面是如何在 ASP.NET Core Web API 中处理 Patch 请求的完整攻略。 什么是 Patch 请求? HTTP Patch 请求是一种特殊的请求类型,它允许我们发送包含需要修改的字段和对应修改值的请求体来部分更新资源。Patch 请求通常用于对资源的局部更新,相对于 Put 请求,Patch 请求只需要传递需要修改的字段,而不用传递全部字…

    C# 2023年6月6日
    00
  • C# FileAttributes.Hidden:表示文件或目录为隐藏文件或目录

    FileAttributes.Hidden 方法是C#中用于操作文件或目录隐藏属性的方法。该方法可用于获取或设置文件或目录是否作为隐藏文件或目录。 方法作用 FileAttributes.Hidden 方法作用如下: 获取指定路径下的文件或目录是否作为隐藏文件或目录。 设置指定路径下的文件或目录是否作为隐藏文件或目录。 使用方法 获取文件/目录隐藏属性 使用…

    C# 2023年4月19日
    00
  • VS2010怎么创建windows窗体应用程序?

    下面是VS2010创建Windows窗体应用程序的完整攻略: 步骤1:创建新项目 打开Visual Studio 2010,选择“新建项目”。在弹出的“新建项目”窗口中,选择“Visual C#”(或Visual Basic)下的“Windows窗体应用程序”。输入项目名称,选择项目保存位置,然后点击“确定”按钮。 步骤2:设计窗体 在设计窗体中,可以通过拖…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部