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#调用python.exe使用arcpy方式

    下面是详细讲解“C#调用python.exe使用arcpy方式”的完整攻略。 一、前置准备 在 C# 中调用 Python 脚本需要借助于 Process 类,同时需要安装好 python 的开发环境以及第三方库 arcpy。 安装 arcpy: 安装 ArcGIS Desktop 或者 ArcGIS Engine。 执行 ArcGIS Desktop 安装…

    C# 2023年5月15日
    00
  • 如何运行编译.NetCore的源码?

    作为.net的开发人员,为了能更好的code,我们要知其然并知其所以然,了解.netcore的源码是我们的基本素养✊ 源码地址 .NET Platform (github.com) 这个是.net在github上开源的源码地址aspnetcore 这个是.netcore的源码地址runtime 这个是运行时的源码地址,有些.netcore源码会依赖此运行时(…

    C# 2023年4月24日
    00
  • WPF+ASP.NET SignalR实现动态折线图的绘制

    下面是详细的攻略: 简介 本文介绍如何使用 WPF 和 ASP.NET SignalR 实现动态折线图的绘制。WPF 是一个用于创建 Windows 应用程序的 UI 框架,而 ASP.NET SignalR 是一个用于实现实时应用程序的框架,两者结合可以实现实时折线图的绘制。 准备工作 在开始实现动态折线图之前,我们需要准备以下工具: Visual Stu…

    C# 2023年6月3日
    00
  • 各种AJAX方法的使用比较详解

    AJAX(Asynchronous JavaScript and XML)是一种用于创建异步Web应用程序的技术。它可以在不刷新整个页面的情况下更新部分页面内容,提高Web应用程序的响应速度和用户体验。本文将介绍各种AJAX方法的使用,包括XMLHttpRequest、jQuery AJAX和Fetch API。 XMLHttpRequest XMLHttp…

    C# 2023年5月15日
    00
  • c#使用filesystemwatcher实时监控文件目录的添加和删除

    C#使用FileSystemWatcher实时监控文件目录的添加和删除 FileSystemWatcher是C#中用于监控文件系统更改的类。它可以监视指定目录中的文件和子目录的创建、更改、重命名和删除等操作,并在这些操作发生时引发事件。在本文中,我们将介绍如何使用FileSystemWatcher实时监控文件目录的添加和删除。 步骤一:创建FileSyste…

    C# 2023年5月15日
    00
  • c#创建Graphics对象的三种方法

    让我们来详细讲解一下c#创建Graphics对象的三种方法。 前言 在C#中,我们可以使用Graphics对象来进行图形绘制操作,比如绘制直线、矩形、椭圆、多边形等。Graphics对象通常与平面控件(如PictureBox和Panel)配合使用,通过将图像绘制到控件上来实现绘制功能。那么在C#中,有哪些方法可以创建Graphics对象呢? 创建Graphi…

    C# 2023年6月1日
    00
  • C# 拷贝数组的几种方法(总结)

    当我们在使用 C# 编程语言时,时常需要对数组进行复制和拷贝。为了更好的理解 C# 拷贝数组的几种方法,本文对常用的拷贝数组方法进行了总结,并提供了示例代码以加深理解。 一、使用Array.Copy()方法拷贝数组 方法介绍 Array.Copy() 方法可以将一个数组中的元素复制到另一个数组中。该方法需要传入源数组、目标数组、以及要复制的元素数量。 pub…

    C# 2023年6月7日
    00
  • C#数组应用分析第1/2页

    C#数组应用分析攻略 什么是C#数组 C#中的数组是一种数据结构,用于存储相同类型的固定大小的元素序列。数组在编程中非常常见,可以提高代码运行效率,也方便了数据的管理。 如何声明C#数组 在C#中声明数组需要指定元素的数据类型和数组的名称,如下所示: int[] numbers = new int[5]; 其中,int[]代表int类型的数组,numbers…

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