c#给图片添加文字的代码小结

当我们在处理图片时,有时需要在图片上添加文字,以标注或说明图片的内容。使用 C# 可以通过在图像上显示文字来实现这一功能。接下来,我们将提供一份“c#给图片添加文字的代码小结”的完整攻略。

1. 引用名称空间

using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;

在添加文本到图片中之前,我们需要先引用 System.DrawingSystem.Drawing.ImagingSystem.IOSystem.Windows.Forms 等命名空间。

2. 定义方法添加文本

public Bitmap AddTextToImage(string path, string text)
{
    Bitmap bmp = new Bitmap(path);
    // 新建图片画布
    Graphics g = Graphics.FromImage(bmp);
    // 设置文字信息
    Font font = new Font("Arial", 16);
    Color color = Color.Red;
    PointF p = new PointF(10, 10);
    // 添加文字
    g.DrawString(text, font, new SolidBrush(color), p);
    // 返回添加了文字的 Bitmap
    return bmp;
}
  • path:图片路径。
  • text:要添加到图像上的文本。

这个方法接受两个参数,图像路径和要添加的文本,它会返回添加了文本的 Bitmap。我们首先从指定路径打开一个图像文件,并将其加载到 Bitmap 对象中。接下来,我们使用名称空间中的 Graphics 类从 Bitmap 新建一个画布,设置将要添加到图像中的文本信息,并使用 DrawString() 方法将文本绘制在 Bitmap 上。最后,返回添加了文字的 Bitmap。

3. 保存添加了文本的图片

public void SaveImage(Bitmap image, string outputPath)
{
    using (MemoryStream memoryStream = new MemoryStream())
    {
        image.Save(memoryStream, ImageFormat.Jpeg);
        byte[] bytes = memoryStream.ToArray();
        using (FileStream fs = new FileStream(outputPath, FileMode.CreateNew))
        {
            fs.Write(bytes, 0, bytes.Length);
        }
    }
}

这个方法接受两个参数,一个是我们在第二步中返回的 Bitmap 对象,以及要保存图像的输出路径。它使用 MemoryStream 将图像保存为字节数组,并使用 FileStream 将其写入磁盘上的新文件。

示例说明

以下示例演示了如何将文本添加到图像中。

string imagePath = "image.jpg";
string text = "C# 添加文本到图像中";
string outputPath = "image-with-text.jpg";

Bitmap image = AddTextToImage(imagePath, text);
SaveImage(image, outputPath);

MessageBox.Show("图片添加文本完成!");

这个示例将加载 image.jpg,将 C# 添加文本到图像中 文本添加到该图像并将其保存为 image-with-text.jpg

我们再来看另一个示例,这个示例展示了如何直接将文本写入图像当中。

string imagePath = "image.jpg";
string text = "C# 添加文本到图像中";
string outputPath = "image-with-text.jpg";

Bitmap image = new Bitmap(imagePath);
using (Graphics g = Graphics.FromImage(image))
{
    Font font = new Font("Arial", 16);
    Color color = Color.Red;
    PointF p = new PointF(10, 10);
    // 添加文字
    g.DrawString(text, font, new SolidBrush(color), p);
}

image.Save(outputPath);
MessageBox.Show("图片添加文本完成!");

这个示例和上一个示例相似,唯一的区别在于该示例直接在原始的 Bitmap 对象上写入文本,而不是新建一个 Bitmap 对象。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#给图片添加文字的代码小结 - Python技术站

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

相关文章

  • C#实现QQ截图功能及相关问题

    C#实现QQ截图功能及相关问题 1. 前言 在Windows系统下进行QQ截图是一种很常见的操作。开发人员可以使用C#语言来实现这个功能并且将其集成到自己的应用程序中。本文将详细讲解如何使用C#来实现QQ截图功能,是一篇有关屏幕截图技术的实用性文章。 2. 实现原理 C#实现QQ截图功能的原理与其他编程语言相同:获取屏幕的图像并对其进行编辑;接着将编辑后的图…

    C# 2023年6月6日
    00
  • 实例详解C#实现http不同方法的请求

    我来为你详细讲解一下“实例详解C#实现http不同方法的请求”的攻略。 1. 引言 Http请求是开发中常见的场景,而C#作为微软提供的开发语言,也有自己的内置HttpWebRequest和HttpClient类,可以很方便地实现Http请求。本攻略将通过详尽的代码示例,来说明如何使用C#实现Http不同方法的请求。 2. 前置条件 在实现Http请求前,需…

    C# 2023年5月31日
    00
  • C#中ExecuteNonQuery()返回值注意点分析

    针对C#中ExecuteNonQuery()返回值注意点,我为大家准备了以下完整攻略: 1. ExecuteNonQuery()方法的用途 ExecuteNonQuery()方法在C#中是通过SqlConnection对象执行SQL语句的方法之一,它主要用于执行不返回数据集的SQL语句,比如INSERT、UPDATE、DELETE等操作,即执行非查询语句。在…

    C# 2023年5月14日
    00
  • asp.net 关于==?:和if()else()条件判断等效例子

    ASP.NET 是一种基于 .NET Framework 的 Web 应用程序开发框架,它支持 C#、VB.NET、JScript.NET 和其他高级编程语言。在 ASP.NET 中,我们经常会用到条件判断语句,其中 “==?:” 是常用的一个运算符,而if…else…则是最常见的条件判断语句之一。 1. “==?:”运算符 “==?:” 意思是在判…

    C# 2023年5月31日
    00
  • 详解ASP.NET Core中配置监听URLs的五种方式

    详解ASP.NET Core中配置监听URLs的五种方式 在ASP.NET Core应用程序中,可以通过配置监听URLs来指定应用程序监听的URL地址。本攻略将详细介绍ASP.NET Core中配置监听URLs的五种方式。 方式一:通过appsettings.json文件配置 可以通过在appsettings.json文件中添加以下代码来配置监听URLs: …

    C# 2023年5月16日
    00
  • C#简单判断字符编码的方法

    C# 中判断字符编码的方法可以使用 Encoding 类的 GetEncoding 方法,该方法可以将一个编码名称或编号转换为一个 Encoding 对象。接下来将详细讲解如何使用该方法来判断字符编码。 获取字符的字节数组 在判断字符编码之前,我们需要先将字符串转换为其字节数组,可以使用 Encoding 的 GetBytes 方法来实现。以下是一个简单的示…

    C# 2023年6月7日
    00
  • .NET性能优化之为结构体数组使用StructLinq的问题解析

    针对“.NET性能优化之为结构体数组使用StructLinq的问题解析”,以下是详细的攻略: 1. 为什么要使用StructLinq 在.NET开发中,数据遍历或是筛选排序等操作是开发者经常会遇到的问题,直接使用foreach进行操作会存在性能衰减的问题,而使用LINQ进行操作虽然性能有所提高,但是GC会频繁出现。 而使用StructLinq可以解决这一问题…

    C# 2023年6月1日
    00
  • C#结合JavaScript实现秒杀倒计时的方法

    标题:C#结合JavaScript实现秒杀倒计时的方法 介绍: 本文主要介绍如何使用C#和JavaScript联合起来实现秒杀倒计时。在电商平台中,秒杀活动是吸引消费者的重要手段之一,而实现倒计时又是其关键所在。因此,本文将详细介绍如何实现秒杀倒计时,希望能够帮助到需要的人。 获取时间差值 在实现倒计时之前,需要获取当前时间和目标时间之间的时间差值。这可以通…

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