将文本添加到图像并保存

2024-03-24

在我的程序中,我允许用户输入一些文本,然后使用graphics.DrawString()方法。当我然后去保存该图像时,它会保存没有文本的图像。

如何将两者保存为一张图像?

我看过一些例子,但没有一个有帮助。

private void txtToolStripMenuItem_Click(object sender, System.EventArgs e)
    {
        Rectangle r = new Rectangle(535, 50, original_image.Width, original_image.Height);
        Image img = Image.FromFile("C:\\PCB.bmp");

        Bitmap image = new Bitmap(img);

        StringFormat strFormat = new StringFormat();

        strFormat.Alignment = StringAlignment.Center;
        strFormat.LineAlignment = StringAlignment.Center;

        Graphics g = Graphics.FromImage(image);

        g.DrawString("Hellooooo", new Font("Tahoma", 40), Brushes.White,
                r, strFormat); 

        image.Save("file_PCB.Bmp", ImageFormat.Bmp);
    }

那是因为您正在创建一个没有画布的图形对象。您没有绘制任何内容,因此绘制文本不会改变任何内容。

首先创建图像的副本(或创建一个空白位图并在其上绘制图像),然后创建一个用于在该图像上绘制的图形对象:

Graphics g = Graphics.FromImage(image_save);

然后绘制文本并保存图像。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文本添加到图像并保存 的相关文章

随机推荐

  • 使用 Google Cloud DataFlow python sdk 读取一组 xml 文件

    我正在尝试从 GCS 存储桶读取 XML 文件的集合并处理它们 其中集合中的每个元素都是代表整个文件的字符串 但我找不到关于如何完成此操作的合适示例 我也无法理解它来自 Apache Beam 文档 主要是关于 Java 版本的 我当前的管
  • 数据库项目未运行部署后脚本

    我们有一个包含三个数据库项目的解决方案 所有三个生成的 dacpac 均按顺序部署 但由于某种原因 其中一个 dacpac 不运行部署后脚本 我们使用 sqlpackage 创建 diffscript 并且 diffscriptdoes正确
  • 使用角度2显示图像

    我对 Angular 2 很陌生 我被困在这里 我必须显示我正在使用相对路径的图像 img src images publicVideo1 PNG 但出现以下错误 null 1 GET http localhost 4200 null 40
  • 从批处理文件中读取和写入 REG_DWORD

    我的要求是从注册表中读取 REG DWORD 并将其写入另一个位置 我已成功从注册表位置读取数据 但不知道如何写入 My code echo off REG QUERY HKEY LOCAL MACHINE SOFTWARE Microso
  • XLL Excel Addin 的基础知识 - 需要从 Excel 调用 C# API [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对创建 Excel 插件还很陌生 早些时候 我曾经为 NET 库创建一个 tlb 我曾经使我的 NET 类 COMVISIBLE 并
  • 在 Windows Docker 上安装 Matlab

    尝试在 docker 映像上安装 Matlab 运行时以及我正在处理的项目 该项目是一个引擎 它将根据给定的内容运行各种测量 其中许多测量都使用 Matlab 当我运行 docker 时 出现 MWArray 程序集初始化失败 或缺少 ma
  • 检测 Android 中的应用程序崩溃

    我正在构建一个有时会崩溃的应用程序 我想知道它在下次打开它时崩溃 以便我可以向用户建议一些崩溃后选项 我怎样才能检测到崩溃 另外我希望能够在崩溃之前保存用户的工作 我的意思是实时检测崩溃 我可以在不知道崩溃位置的情况下做到这一点吗 您需要知
  • CSSMERR_TP_NOT_TRUSTED 错误

    我按照文档做了所有事情 我将 Apple 全球开发人员证书标记为始终可信 iPhone 发行版为 始终可信 但我遇到了以下错误消息 Users keyss Desktop Deep Free Version build Release ip
  • 衡量 Kotlin 代码的测试覆盖率?

    有没有办法衡量 Kotlin 代码的测试覆盖率 Jacoco 给出错误的结果 因为无法确定自动生成的代码 还有其他解决办法吗 如果您正在使用 IntelliJ IDEA 此链接将对您有所帮助 https www jetbrains com
  • 单页应用程序的 webforms 与 asp.net mvc - 选择哪个? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Vagrant 超时

    有一些问题让我的流浪汉站起来 拿到箱子就跑vagrant init之后vagrant up命令我收到此消息 Bringing machine default up with virtualbox provider gt default Im
  • 设计 + 主动管理重定向

    我在为我的应用程序设置重定向时遇到问题 用户应该转到他们的个人资料 用户 节目 管理员应该转到管理仪表板 我该如何设置 目前出现以下错误 NameError in ActiveAdmin Devise SessionsController
  • 运行yarn install时,如果一个模块不提供另一个模块,这意味着什么?

    当我跑步时yarn在我使用 firebase 的 React 应用程序上 我会收到几个警告 例如 firebase auth npm 0 14 5 c52f6 doesn t provide firebase email protected
  • 带冒号的 Javascript 内部函数

    我知道你可以写以下内容 var obj test something 但在这段代码中 内部函数引用的不是变量 而是函数 还有其他方法可以编写 调用内部函数吗 function outer var a Outerfunction consol
  • 如何制作可点击的 CSS3DObject

    我正在使用三个 JS CSS3DRenderer 尝试使 CSS3DObject 在单击时更新其position z 这是我的代码 var element document createElement div element style w
  • 使用 C# 执行 SSIS 包时出错

    我尝试执行一个非常简单的SSIS封装使用C 直接在 Visual Studio 2015 中启动时 此包运行良好 SSIS 包的名称是 Lesson 1 dtsx 我尝试使用开始这个过程C 使用以下代码 using System using
  • 搜索循环后网络抓取表格

    该表的 HTML 为 table border 1 width 100 tr class row0 td style width 30 strong TITLE strong td td style width 40 UNIQUE td t
  • 使用 RxJS 和 Angular2 限制并发 http 请求

    我以前见过这个问题 但回答总是让我不满意 所以我会尽量准确 我在用着https www npmjs com package rxjs https www npmjs com package rxjs想要对大量的 http 请求进行排队 并且
  • Pandas - 按行交错/压缩两个 DataFrame

    假设我有两个数据框 gt gt df1 0 1 2 0 a b c 1 d e f gt gt df2 0 1 2 0 A B C 1 D E F 如何交错行 即得到这个 gt gt interleaved df 0 1 2 0 a b c
  • 将文本添加到图像并保存

    在我的程序中 我允许用户输入一些文本 然后使用graphics DrawString 方法 当我然后去保存该图像时 它会保存没有文本的图像 如何将两者保存为一张图像 我看过一些例子 但没有一个有帮助 private void txtTool