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#实现装饰器模式

    装饰器模式是一种常用的设计模式,它允许动态地向一个对象添加新的功能。 实现装饰器模式的步骤如下:1. 创建一个抽象组件类(Component),定义需要装饰的对象的共同接口。2. 创建一个具体组件类(ConcreteComponent),实现抽象组件类中定义的方法。3. 创建一个抽象装饰器类(Decorator),继承自抽象组件类,包含一个成员变量,用于保存…

    C# 2023年5月31日
    00
  • 字符串的模式匹配详解–BF算法与KMP算法

    字符串的模式匹配详解–BF算法与KMP算法 背景 在计算机科学中,字符串匹配是指在一个字符串中查找一个子串的出现位置。在实际开发过程中,字符串匹配是非常常见的情况,例如数据库模糊查询、搜索引擎的查询等都需要使用字符串匹配算法。 BF算法 BF算法全称Brute-Force算法,又称暴力匹配算法,思路非常简单:在主串中每个可能的位置开始,与模式串进行匹配。如…

    C# 2023年6月7日
    00
  • CommunityToolkit.Mvvm8.1 viewmodel源生成器写法(3)

      本系列文章导航 https://www.cnblogs.com/aierong/p/17300066.html https://github.com/aierong/WpfDemo (自我Demo地址) 希望提到的知识对您有所提示,同时欢迎交流和指正 作者:aierong出处:https://www.cnblogs.com/aierong   说明 Co…

    C# 2023年4月17日
    00
  • asp.net(c#)下读取word文档的方法小结

    下面我将给出一个“asp.net(c#)下读取word文档的方法小结”的完整攻略,包含以下内容: 1. 了解Word文档的内部结构 要读取Word文档,首先需要了解Word文档的内部结构。当我们打开一个Word文档时,它实际上是一个包含许多不同元素(如段落、表格、图像等)的复合文档。Word文档的内部结构保存在其二进制格式(.doc)或OpenXML格式(.…

    C# 2023年6月1日
    00
  • asp实现二进制字符串转换为Unicode字符串

    实现二进制字符串转换为Unicode字符串,可以通过以下步骤来完成: 将二进制字符串转换为byte数组。可以通过将二进制字符串每8位作为一个byte元素,将这些byte元素组成一个byte数组,来实现二进制字符串转换为byte数组。 示例1: 假设有以下二进制字符串:01100001011100100111001101110100 按照每8位作为一个byte…

    C# 2023年6月7日
    00
  • C#自定义字符串替换Replace方法实例

    C#自定义字符串替换Replace方法实例 什么是Replace方法 在C#中,我们可以使用string.Replace()方法来替换字符串中的指定字符或字符串。该方法接收两个参数,第一个参数为要替换的字符串,第二个参数为用来替换的字符串。当存在多个要替换的字符串时,可以进行多次调用Replace方法。 string.Replace()方法的语法如下: pu…

    C# 2023年6月7日
    00
  • jQuery使用$.ajax进行即时验证实例详解

    让我来详细讲解“jQuery使用$.ajax进行即时验证实例详解”。 标题 首先,我们需要了解一下什么是jQuery以及$.ajax。jQuery是一个快速且简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画等操作。而$.ajax是jQuery中一个重要的函数,用来进行异步请求,可以实现无需刷新页面即可获取/修改数据。 具体步骤 在实现即…

    C# 2023年6月8日
    00
  • C#使用Jquery zTree实现树状结构显示 异步数据加载

    下面是详细的C#使用Jquery zTree实现树状结构显示 异步数据加载的攻略。 1、准备工作 首先需要引入相关的库文件,包括jquery、ztree和css文件。然后需要设定树状结构的容器,例如在HTML中加入一个div: <div id="tree"></div> 2、配置树状结构 通过以下代码配置树状结构:…

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