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# StringBuilder.Insert()方法: 在 StringBuilder 对象的指定位置插入一个字符串

    StringBuilder.Insert() 方法用于在指定索引位置插入指定的字符串或字符。它的语法如下: public StringBuilder Insert(int index, string value); public StringBuilder Insert(int index, char value); 其中,第一个参数 index 表示要在哪…

    C# 2023年4月19日
    00
  • 浅谈C#中的for循环与foreach循环

    浅谈C#中的for循环与foreach循环 介绍 在C#语言中,有两种循环结构:for循环和foreach循环。它们被广泛用于遍历和操作数组、集合等数据结构,也是编写控制流程的重要工具。 本文将详细讲解C#语言中的for循环和foreach循环,并通过示例帮助读者理解它们的使用情景和用法。 for循环 for循环结构在C#中有两种常见写法: 第一种写法 fo…

    C# 2023年6月7日
    00
  • VisualStudio怎么设置粘贴时格式不变? vs粘贴时自动缩进的技巧

    当在VisualStudio中使用复制粘贴操作时,有时候会出现格式混乱的情况,这时候我们可以进行设置来使得粘贴时不改变格式。同时,还可以设置粘贴时自动缩进,方便代码的编写与阅读。 以下是VisualStudio设置粘贴时格式不变或自动缩进的方法: 1. 设置粘贴时格式不变 步骤: 打开VisualStudio,进入“工具”菜单,选择“选项”。 在弹出的“选项…

    C# 2023年6月6日
    00
  • C#实现矩阵转置的方法

    C#实现矩阵转置的方法 什么是矩阵转置 矩阵转置是指将矩阵的行列交换得到一种新的矩阵,原矩阵的行变成转置后矩阵的列,原矩阵的列变成转置后矩阵的行。需要注意的是,转置后的新矩阵的行列数与原矩阵相反。 C#实现矩阵转置的方法 C#中可以使用二维数组来表示矩阵,矩阵转置的过程其实就是对原数组的行列进行交换,下面是C#实现矩阵转置的简单代码示例: int[,] ma…

    C# 2023年6月7日
    00
  • unity实现录音并保存本地

    下面我就来详细讲解如何在Unity中实现录音并保存本地。 1. 前置准备 在开始实现录音之前,我们需要导入一个Unity的插件——Microphone,这个插件可以让我们在Unity中调用系统的音频采集设备。具体的导入方法如下: 打开Unity,进入项目。 点击菜单栏的“Window”,在下拉菜单中点击“Package Manager”。 在Package …

    C# 2023年6月3日
    00
  • C# HttpClient Post参数同时上传文件的实现

    我将为您详细讲解“C# HttpClient Post参数同时上传文件的实现”的完整攻略。 创建HttpClient对象 首先,我们需要创建一个HttpClient对象来进行HTTP请求和响应。可以使用以下代码创建HttpClient对象: HttpClient client = new HttpClient(); 添加要上传的文件 接下来,我们需要添加要上…

    C# 2023年5月31日
    00
  • c#使用wmi查询usb设备信息示例

    下面我将为您详细讲解如何使用c#和wmi查询usb设备信息: 1. 什么是WMI? WMI即Windows Management Instrumentation(Windows管理规范),是微软在Windows NT 4.0中推出的一个系统管理标准。它提供了一种机制,用于通过应用程序编程接口(API)收集有关计算机系统硬件、软件甚至网络服务的信息。我们可以通…

    C# 2023年6月3日
    00
  • .net的socket异步通讯示例分享

    下面我将为您详细讲解“.NET的Socket异步通讯示例分享”的攻略。 一、什么是Socket异步通讯 在计算机网络中,Socket(套接字)是指一个可以收发信息的网络通信端点,常用于客户端与服务器之间的通信。异步通讯是指通讯双方在任何时候都可以独立地发送和接收消息,不需要等待对方的响应。 在.NET中,可以使用Socket类实现Socket异步通讯,它提供…

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