C#实现的上传图片、保存图片、加水印、生成缩略图功能示例

下面就是详细讲解“C#实现的上传图片、保存图片、加水印、生成缩略图功能示例”的完整攻略。

前言

在网站的开发过程中,图片处理是非常重要的一环。在C#语言中,我们可以利用System.Drawing命名空间中的类和方法来实现上传图片、保存图片、加水印、生成缩略图等功能。下面将分别对这几个功能进行详细介绍。

上传图片

在C#中,可以利用System.Web命名空间中的HttpPostedFile类实现图片的上传。具体步骤如下:

  1. 在前端页面中添加一个<input type="file">元素,用于选择要上传的图片。

  2. 在服务器端获取上传的图片文件,可以通过如下代码实现:

HttpPostedFile postedFile = Request.Files["file"];
if (postedFile != null && postedFile.ContentLength > 0)
{
    // 保存文件到服务器
    string fileName = Path.GetFileName(postedFile.FileName);
    string filePath = Server.MapPath("~/Uploads/" + fileName);
    postedFile.SaveAs(filePath);
}

其中,Request.Files["file"]表示获取前端发送过来的名字为file的文件数据。Path.GetFileNameServer.MapPath方法分别用来获取上传文件的文件名和文件路径。最后,利用postedFile.SaveAs方法将文件保存到服务器的指定路径中。

  1. 在保存文件之前,还需要判断用户上传的文件是否为图片文件。可以通过postedFile.ContentType来获取文件的MIME类型,如果不是图片文件,就不能保存到服务器了。
if (postedFile.ContentType.ToLower().IndexOf("image") < 0)
{
    return;
}

综上,利用以上代码就可以实现图片的上传功能了。

保存图片

在程序中,我们有时需要对图片进行处理,比如添加水印、生成缩略图等。在处理完图片之后,需要将处理后的图片保存到服务器,可以通过如下代码实现:

Bitmap bitmap = new Bitmap(Server.MapPath("~/Images/1.jpg"));
Graphics graphics = Graphics.FromImage(bitmap);
// 对图像进行处理
...
// 保存图像
bitmap.Save(Server.MapPath("~/Images/1.jpg"), ImageFormat.Jpeg);

其中,Bitmap类表示要操作的图片对象,Graphics类表示要对图片进行的操作(比如添加水印、生成缩略图),ImageFormat.Jpeg表示生成的图片格式。最后通过bitmap.Save方法保存处理后的图像。

加水印

在C#中,可以通过如下代码实现图片加水印的功能:

Bitmap bitmap = new Bitmap(Server.MapPath("~/Images/1.jpg"));
Graphics graphics = Graphics.FromImage(bitmap);
graphics.DrawString("测试水印", new Font("微软雅黑", 12), Brushes.Red, new PointF(10, 10));
bitmap.Save(Server.MapPath("~/Images/1.jpg"), ImageFormat.Jpeg);

其中,DrawString方法将字符串“测试水印”绘制在图片上,Font表示字体、字号等信息,Brushes.Red表示字体颜色,PointF表示水印起始坐标。最终通过bitmap.Save方法保存加水印的图片。

生成缩略图

在C#中,可以利用System.Drawing.Image类的GetThumbnailImage方法实现生成缩略图的功能。具体步骤如下:

  1. 读取原始图片
Image image = Image.FromFile(Server.MapPath("~/Images/1.jpg"));
  1. 调用GetThumbnailImage方法生成缩略图
Image thumbImage = image.GetThumbnailImage(100, 100, null, IntPtr.Zero);

其中,100, 100表示生成的缩略图的宽度和高度。

  1. 保存缩略图
thumbImage.Save(Server.MapPath("~/Images/1_thumb.jpg"), ImageFormat.Jpeg);

综上,利用以上代码就可以实现生成缩略图的功能了。

结语

本文详细介绍了C#实现的上传图片、保存图片、加水印、生成缩略图等功能的攻略。希望本文能对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现的上传图片、保存图片、加水印、生成缩略图功能示例 - Python技术站

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

相关文章

  • C#使用oledb读取excel表格内容到datatable的方法

    关于“C#使用oledb读取Excel表格内容到DataTable的方法”的攻略,我可以这样来进行详细讲解。 1. 需求 我们的需求是读取Excel表格的内容,并将其存储到DataTable中,以便于进行后续的操作和处理。 2. 准备工作 需要安装Microsoft ACE OLEDB运行库才能正常使用,还需要添加System.Data命名空间。 3. 读取…

    C# 2023年5月15日
    00
  • unity将图片转换成字体的方法

    转换图片成字体,可以使用Unity的TextMesh Pro插件。下面是具体的步骤: 1. 安装TextMesh Pro 插件 在Unity Asset Store中搜索“TextMesh Pro”并下载安装 2. 创建一个新的TextMesh Pro字体 在菜单栏中依次选择TextMeshPro -> Font Asset Creator,打开字体生…

    C# 2023年6月3日
    00
  • C#获取机器码的方法详解(机器名,CPU编号,硬盘编号,网卡mac等)

    C#获取机器码的方法详解 在C#中,可以通过获取机器的特定信息来生成其唯一的机器码。具体可以获取的信息有机器名、CPU编号、硬盘编号、网卡mac等。下面我们分别介绍如何获取这些信息。 获取机器名 通过Environment.MachineName可以获取机器名,示例如下: string machineName = Environment.MachineNam…

    C# 2023年6月7日
    00
  • C#根据身份证号码判断出生日期和性别

    C# 根据身份证号码判断出生日期和性别 步骤1:获取身份证号码的输入 在 C# 中,我们可以通过 Console.ReadLine() 方法获取用户输入的身份证号码。示例代码如下: Console.WriteLine("请输入身份证号码:"); string idCard = Console.ReadLine(); 步骤2:校验身份证号码…

    C# 2023年6月1日
    00
  • C# Keys:获取 ICollection,其中包含 IDictionary的键

    C# Keys 的完整攻略 简介 C# Keys 是一个用于 Windows Forms 控件的 KeyCode 枚举的组成部分,KeyCode 枚举表示键盘或鼠标的各个键和鼠标动作的键。使用 C# Keys ,可以很方便地检测用户按下的键或鼠标的动作。 KeyCode 与 ModifierKeys 枚举 KeyCode 枚举 KeyCode 枚举表示一个键…

    C# 2023年4月19日
    00
  • 利用Asp.Net Core的MiddleWare思想如何处理复杂业务流程详解

    利用Asp.Net Core的MiddleWare思想如何处理复杂业务流程详解 在Asp.Net Core中,MiddleWare是一种非常强大的技术,它可以帮助我们处理复杂的业务流程。本攻略将介绍如何利用Asp.Net Core的MiddleWare思想来处理复杂业务流程,并提供两个示例说明。 MiddleWare思想 MiddleWare是Asp.Net…

    C# 2023年5月17日
    00
  • C#实现判断字符串中是否包含中文的方法

    下面是关于“C#实现判断字符串中是否包含中文的方法”的完整攻略: 方法一:使用正则表达式 正则表达式是一个强大的工具,可以用来匹配符合某种规则的文本。在C#中,可以使用正则表达式来判断字符串中是否包含中文。 下面是一个用正则表达式判断中文的示例代码: using System.Text.RegularExpressions; public bool Cont…

    C# 2023年6月8日
    00
  • unity 切换场景不销毁物体问题的解决

    下面是详细讲解 “Unity切换场景不销毁物体问题的解决” 的完整攻略。 问题描述 在Unity中,切换场景时,场景中的物体通常都会被销毁并重新创建。但是,在某些情况下,我们希望在切换场景时不销毁某些物体,例如UI、游戏内人物等。那么该如何解决这个问题呢? 解决方法 方法一:使用DontDestroyOnLoad() Unity提供了DontDestroyO…

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