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

yizhihongxing

当我们在处理图片时,有时需要在图片上添加文字,以标注或说明图片的内容。使用 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日

相关文章

  • ASP.NET动态生成静态页面的实例代码

    下面是ASP.NET动态生成静态页面的实例代码的完整攻略: 1. 创建ASP.NET Web应用程序 首先需要创建ASP.NET Web应用程序,在Visual Studio中创建一个新的Web应用程序项目,选择ASP.NET Web应用程序模板。可以选择任何项目模板,只要支持使用C#或VB.NET编写代码就可以了。 2. 设计HTML模板 设计一个HTML…

    C# 2023年5月31日
    00
  • BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面

    一、BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面攻略 背景简介 BootstrapTable是一款功能强大的jQuery表格插件,支持前端排序、分页、筛选等功能,使用方便,快捷。KnockoutJS是一个MVVM框架,可以自动更新页面中数据和DOM元素的状态。而自定义T4模板则是使用Visual Studio的代码生成…

    C# 2023年5月31日
    00
  • 代码自动生成工具ASP.NET Maker 2020安装及激活教程(附注册机下载)

    下面就是ASP.NET Maker 2020安装及激活教程: 简介 ASP.NET Maker是一款功能强大的自动生成 ASP.NET Core 项目的数据库网站程序的工具,它可以生成页面、HTML、数据库、应用程序和其他功能。 下载及安装 首先,从官网 ASP.NET Maker 下载软件并解压缩。 双击”setup_aspmkr2020.exe”运行安装…

    C# 2023年5月31日
    00
  • C#实现实体类与字符串互相转换的方法

    讲解C#实现实体类与字符串互相转换的方法,可以使用JSON格式进行转换。 1. JSON序列化和反序列化 1.1 JSON序列化 JSON序列化是将C#对象序列化为JSON格式的字符串的过程,主要使用JSON.NET库的JsonConvert.SerializeObject()方法来完成,示例如下: using Newtonsoft.Json; public…

    C# 2023年5月31日
    00
  • 深入理解C#指针之美

    深入理解C#指针之美 指针是计算机科学中相对较为高级的概念,C#作为一门高级语言,也为我们提供了对指针的支持。理解指针的概念和使用方法,有利于我们更好地编写高效的代码。本文将详细讲解C#指针的相关知识,包括指针的定义、初始化、取值、指针运算和指针与引用类型的关系等内容。 概述 指针是一种特殊的变量,它不仅可以存储一个数据的地址,而且可以使用该地址访问该数据。…

    C# 2023年6月6日
    00
  • C#使用Process类调用外部exe程序

    一、介绍 在使用C#进行编程的过程中,有时需要使用外部程序来进行特定的操作。在这种情况下,可以使用Process类进行操作。Process类是C#中用于启动外部进程的类,它允许我们创建、控制和执行操作系统中的进程,比如启动一个Windows应用程序或者调用另一个可执行文件。 二、基本用法 使用Process类调用外部exe程序的基本流程如下: 首先创建一个P…

    C# 2023年6月7日
    00
  • c#窗体传值用法实例详解

    下面我就详细讲解一下”C#窗体传值用法实例详解”。 一、什么是窗体传值? 在C#中,我们经常需要在不同的窗体之间传递数据。比如,在一个窗体中填写了某些信息,需要在另一个窗体中使用这些信息。这个过程就叫做窗体传值。通俗地来说,就是将数据从一个窗体传递到另一个窗体。 二、窗体传值的方法 C#中实现窗体传值的方法有很多种,常用的有以下三种: 1. 构造函数传值 通…

    C# 2023年5月31日
    00
  • C#自定义IP输入框控件

    那么下面我们来详细讲解一下如何实现C#自定义IP输入框控件。 1. 需求分析 我们需要自定义一个IP地址输入框控件,要求用户可以在文本框中输入0~255之间的数字,并以“.”分隔开4段,组成一个完整的IP地址。 2. 控件的设计 我们设计的自定义IP输入框控件,需要包含以下属性和方法: 属性: IPAddr:获取或设置IP地址的值。 方法: CreatePa…

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