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日

相关文章

  • ADO.NET 读取EXCEL的实现代码((c#))

    下面是关于“ADO.NET 读取EXCEL的实现代码((c#))”的完整攻略。 ADO.NET读取EXCEL实现代码 1. 添加ExcelDataReader和ExcelDataReader.DataSet依赖 在c#项目中使用ExcelDataReader和ExcelDataReader.DataSet两个依赖来解析EXCEL文件,需要通过NuGet Pa…

    C# 2023年5月31日
    00
  • C# String.Compare()方法: 比较两个字符串,返回比较结果

    C#中的String.Compare() Compare() 方法是C#中 string 类的成员方法之一,它用于比较两个字符串,并返回一个整数值来表示它们之间的关系。在比较字符串时,该方法会将文本视为由独立的字符组成的序列,而不是单个字符串。 下面是该方法的语法: public static int Compare(string strA, string …

    C# 2023年4月19日
    00
  • Unity实现桌面反弹的示例代码

    下面是Unity实现桌面反弹的完整攻略及示例代码。 桌面反弹的实现过程 首先,我们需要创建一个3D球体作为桌球,并且给它添加物理组件,如刚体和碰撞体,以便后面更好地实现球的反弹。 接着,我们需要创建多个3D立方体作为障碍物,并给它们添加物理组件,如刚体和碰撞体。这种障碍物的数量和形状将会对球的运动轨迹产生影响。 在程序中,我们需要创建OnCollisionE…

    C# 2023年5月15日
    00
  • ASP.NET中相对路径的使用总结

    下面是 ASP.NET 中相对路径的使用总结的详细攻略。 什么是相对路径? 在 ASP.NET 中,相对路径是指相对于当前文件的路径或相对于应用程序根目录的路径。相对路径可以是一个相对于当前文件的相对路径,或者是一个相对于应用程序根目录的相对路径。在编写 ASP.NET 应用程序时,开发人员通常使用相对路径来引用 Web 应用程序中的资源(如图像、样式表和 …

    C# 2023年6月3日
    00
  • Netcore Webapi返回数据的三种方式示例

    .Net Core WebAPI返回数据的三种方式示例 在.Net Core WebAPI中,有多种方式可以返回数据给客户端。本攻略将详细介绍.Net Core WebAPI返回数据的三种方式,并提供两个示例说明。 1. 返回字符串 在.Net Core WebAPI中,可以使用字符串来返回数据给客户端。可以按照以下步骤操作: 在Controller类中,添…

    C# 2023年5月16日
    00
  • 拦截asp.net输出流并进行处理的方法

    拦截asp.net输出流并进行处理的方法可以通过实现自定义的HttpModule来实现。下面将详细介绍具体的步骤和示例。 第一步:创建自定义HttpModule类 首先,我们需要创建一个自定义的HttpModule类,并实现其核心方法Application_EndRequest。该方法会在每个请求结束后被调用,并且此时应用程序将已处理完整个请求,即可以读写请…

    C# 2023年6月3日
    00
  • C#实现航班预订系统

    C#实现航班预订系统完整攻略 目录 简介 基本功能 技术栈 实现步骤 简介 航班预订系统是指通过计算机网络,提供适当的航班信息和相应的预订服务,让用户能够方便地进行航班查询和预订。在本文中,我们将使用C#语言实现一个简单的航班预订系统。 基本功能 这个航班预订系统具有以下基本功能: 用户可以以一种用户友好的方式查询航班信息。 用户可以选择要预订的航班,并进行…

    C# 2023年5月31日
    00
  • asp.net(c#)Enterprise Library 3.0 下载

    关于asp.net(c#)Enterprise Library 3.0下载的完整攻略,可以分成以下几个步骤: 1. 打开Enteprise Library官网页面 首先需要打开Enteprise Library官网页面,官网地址为:https://github.com/MicrosoftArchive/enterprise-library-downloads…

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