将图形对象转换为位图

2024-04-10

我的图形对象确实有以下问题。

EDIT:

我有一个图片框图像(图像RxTx)这是来自摄像机的实时流。我在绘制事件中所做的就是在图像 imageRxTx 上绘制一些线条(下面的代码中未显示)。到目前为止,这没有问题。

现在我需要检查 imageRxTx 中的圆圈,因此我必须使用该方法处理图像()它需要一个位图作为参数。不幸的是我没有位图图像而是句柄(hDC)到我的 imageRxTx。

Question:如何从图形对象中获取 imageRxTx 并将其“转换”为我需要在方法中使用的位图图像ProcessImage(位图位图)?需要在绘画事件中连续调用此方法,以检查相机的实时流(图像 RxTx)。

这是我的代码:

    private void imageRxTx_paint(object sender, PaintEventArgs e)
    {
        var settings = new Settings();

        // Create a local version of the graphics object for the PictureBox.
        Graphics Draw = e.Graphics;
        IntPtr hDC = Draw.GetHdc(); // Get a handle to image_RxTx.           

        Draw.ReleaseHdc(hDC); // Release image_RxTx handle.


        //Here I need to send the picturebox_image 'image_RxTx' to ProcessImage as Bitmap
        AForge.Point center = ProcessImage( ?....? );    
    }


    // Check for circles in the bitmap-image
    private AForge.Point ProcessImage(Bitmap bitmap)
    {
        //at this point I should read the picturebox_image 'image_RxTx'
        ...

视频图像在这里更新:

    private void timer1_Elapsed(object sender, EventArgs e)
    {
        // If Live and captured image has changed then update the window
        if (PIXCI_LIVE && LastCapturedField != pxd_capturedFieldCount(1))
        {
            LastCapturedField = pxd_capturedFieldCount(1);
            image_RxTx.Invalidate();
        }
    }

正如标题所示,您的主要问题是对什么是(常见的)误解Graphics对象是。

到目前为止,我可以毫无问题地绘制我的图形对象

  • No! A 'Graphics' 对象确实not包含any图形。这只是tool用于将图形绘制到related Bitmap. So 你不画 the Graphics完全反对;你用它来绘制imageRxTx,无论那是什么,可能是某些事物的表面Control or Form..

  • 该行使用了一种经常令人困惑且无用的格式Bitmap 构造函数 https://msdn.microsoft.com/de-de/library/byca5y1f%28v=vs.110%29.aspx:


Bitmap bmp = new Bitmap(image_RxTx.Width, image_RxTx.Height, Draw); 

最后一个参数正在做几乎什么都没有;它唯一的功能就是复制Dpi环境。特别是,它不会克隆或复制“Draw”中的任何内容,正如您现在所知,“Draw”是一个Graphics对象无论如何都没有,也没有任何其他设置。所以是的,bmp Bitmap之后仍然是空的。

如果你想画进bmp你需要使用Graphics实际绑定到它的对象:

using (Graphics G = Graphics.FromImage(bmp)
{
   // draw now..
   // to draw an Image img onto the Bitmap use
   G.DrawImage(img, ...); 
   // with the right params for source and destination!
}

None这可能应该发生在Paint事件!但所有的准备代码是unclear至于你真正想做的事情。你应该解释一下绘图的来源是什么,目标是什么!

如果你想得到你画的东西onto image_RxTx into a Bitmap你可以使用这个方法外面的某个地方(!) the Paint event:

Bitmap bmp = new Bitmap(image_RxTx.Width, image_RxTx.Height);
image_RxTx.DrawToBitmap(bmp, image_RxTx.ClientRectangle);

这会use the Paint将控件绘制到的事件Bitmap。并不是说结果包括whole PictureBox: The BackgroundImage, the Image and表面图!

Update: 为了得到combined的内容PictureBox,这既是它的Image以及您在表面上绘制的内容,您应该在Tick的事件Timer or就在触发的行之后Paint事件。 (你没有向我们展示这是如何发生的。)你实际上不能把它放在Paint事件本身,因为它将使用Paint事件,因此会导致无限循环!

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

将图形对象转换为位图 的相关文章

  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 对 std::vector 进行排序但忽略某个数字

    我有一个std vector
  • 使用 LINQ to SQL 时避免连接超时的最佳实践

    我需要知道在 net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳实践 特别是在返回时IQueryable
  • 使用 PHP 中的 GD 库在图像上绘图

    我创建了一个代码来生成随机图案图像 它创建一个具有给定宽度和高度的图像 并用 40x40 像素的小矩形填充它 这是我的代码
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • 将签名位图转换为签名字符串(很奇怪的一个)

    基本上我需要将位图图像转换为字符串 但这不是常见的 困境在于该字符串由两部分组成 1 积分 2 线路 我需要将图像转换为由 分隔的两个部分 我得到的一个例子是 221A 221A270A270A25032503200720071716171
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp

随机推荐

  • QCustomPlot - 在 QCPAxisRect 上显示 customPlot 下方的项目

    在一个类似的项目中QCustomPlot 财务演示 http qcustomplot com index php demos financialchartsdemo我不仅想在图表区域中绘制一个 QCPItemRect 还想在图表下方的区域中
  • django:在多表继承中遵循向后到子类的关系

    我欢迎任何有关我的问题的帮助 我试图在多表继承情况下将关系向后跟踪到子类 IE 我想要一个特定州所有餐馆的查询集 这是我的问题的一个简化示例 对 django 文档中的eg进行修改 from django db import models
  • 如何获取 PHP 中的 Subversion 修订号?

    我想让我的 PHP 应用程序标有它使用的修订号 但我不想使用巡航控制 http en wikipedia org wiki CruiseControl或每次更新文件并上传 我该怎么做呢 SVN关键字并不是一个好的解决方案 正如其他人指出的那
  • 使用 javascript 创建一个新的空文档

    我正在使用一些非常不直观的 xml 所有标签都是 TX H VC 我想复制这些数据 但将所有标签重命名为它们的实际含义 我可以创建一个新的空文档来放入新的 命名良好的标签吗 我试过这个 doc new DOMParser parseFrom
  • Android:如何将先前的 Activity Intent 传递到列表视图中

    我有两项活动 Activity A Activity B In Activity A我有一个EditText Button and Image View And in 活动B我有一个Listview和 listView 视图包含 Custo
  • Sql 优化:Xml 或分隔字符串

    希望这只是一个简单的问题 涉及 Sql 2008 中的查询时的性能优化 我曾在一些公司工作过 这些公司在 ETL 流程以及一些网站中大量使用存储过程 我见过这样的场景 他们需要根据一组有限的键值检索特定记录 我已经看到它以 3 种不同的方式
  • Firebase 在服务器配置中不断抛出 OAuth2 客户端 ID 未找到

    我正在尝试使用 Firebase 将我的 Google 用户登录到我的应用程序 但每次使用以下方法时 都会收到此错误 An internal error has occured OAuth2 client id in server conf
  • 将 aar 文件发布到 Maven Central,Gradle 不起作用

    将 aar 文件发布到 Maven Central Gradle 仍然无法工作 好吧 让我们重复我遵循的所有步骤来设法 使用 Gradle 将 aar 文件发布到 Maven Central 我主要遵循这个guide https githu
  • 是否可以重定向用户以启动扫描仪应用程序?

    我正在编写一个应用程序来显示上传的文档python3 django 1 8 1 我们还希望允许用户扫描文档 如您所知 javascript 中有一个打印对话框 window print 浏览器是否支持扫描文档 是否可以使用 javascri
  • 在 C++ 中检查向量的所有元素是否相等

    如果我有一个值向量并且想要检查它们是否都相同 那么在 C 中有效执行此操作的最佳方法是什么 如果我用其他语言 例如 R 进行编程 我的想法是仅返回容器的唯一元素 然后如果唯一元素的长度大于 1 我知道所有元素不可能相同 在 C 中 可以这样
  • 如何使用 PHP 创建 .gz 文件?

    我想使用 PHP 在我的服务器上 gzip 压缩文件 有人有一个输入文件并输出压缩文件的例子吗 这段代码可以解决问题 Name of the file we re compressing file test txt Name of the
  • 非常简单的文件附加器日志记录不起作用

    这是我的 web config 信息
  • ScrollView 中的 ViewPager

    我需要有一个ViewPager里面一个ScrollView but ViewPager只是在进入时不会出现ScrollView 当我不使用时一切正常ScrollView 我在 stackoverflow 或其他网站上看到了一些类似的问题 所
  • BASH:如何在循环中创建动态数组名称

    这是我尝试过的 n 0 for i in aaa bbb ccc do array i n date N n done n 0 for i in aaa bbb ccc do echo array i n n done 有什么想法如何使动态
  • 找不到命名空间错误

    我有以下设置 enums ts export enum DocumentType Email 0 Unknown 1 remote ts
  • 用 C 语言实现 FIFO 队列

    对于嵌入式应用程序 我尝试使用 ANSI C 实现先进先出 FIFO 结构队列 最直接的方法似乎是通过实现链表 以便每个结构包含指向队列中下一个的指针 因此我将结构本身定义为 typedef enum LED on LED off etc
  • 错误:尝试使用 id==grid1 注册小部件,但该 id 已注册

    我目前正在开发我的个人网站我对我的网站的一部分有一个偏见 即避免重复代码 这个视图我有一个 dojox grid datagrid 我可以在同一页面中调用此视图两次 ruban phtml 问题是我单击 1 个按钮 这是该视图 部分视图 的
  • 如何在Matlab中找到连通分量?

    数组A 2 3 2 5 4 8 5 6 7 8 我想得到的结果为 conidx 2 3 5 6 和 4 7 8 2 3 的值之一存在于第二行 2 5 的值之一存在于第 4 行 因此 2 3 2 5 和 5 6 连接起来 最后我可以得到连接索
  • 打字稿错误“无法写入文件...因为它会覆盖输入文件。”

    在 Visual Studio 2015 Update 3 中的 Typescript 2 2 1 项目中 我在错误列表中收到数百个错误 例如 无法写入文件 C my project node modules buffer shims in
  • 将图形对象转换为位图

    我的图形对象确实有以下问题 EDIT 我有一个图片框图像 图像RxTx 这是来自摄像机的实时流 我在绘制事件中所做的就是在图像 imageRxTx 上绘制一些线条 下面的代码中未显示 到目前为止 这没有问题 现在我需要检查 imageRxT