我在包含图像的第三方应用程序中行走控件。自动化元素返回类名 Image,关于如何将该 Image 的内容作为位图对象甚至字节获取的任何想法?
问问题
541 次
2 回答
0
这个讨论很有用:Capturing an image behind a rectangle。
只需使用 AutomationElement 的 BoundingRectangle 属性来制作快照。
于 2014-10-09T07:34:28.747 回答
0
虽然这个问题很老,但我也想添加一个答案,因为我也遇到了这个问题。
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Automation;
namespace AutomationElementExtension
{
public static class AutomationElementExtension
{
public static Bitmap ToBitmap(this AutomationElement automationElement)
{
var boundingRectangle = automationElement.Current.BoundingRectangle;
var bitmap = new Bitmap(Convert.ToInt32(boundingRectangle.Width), Convert.ToInt32(boundingRectangle.Height), PixelFormat.Format32bppArgb);
using (Graphics graphics = Graphics.FromImage(bitmap))
{
graphics.CopyFromScreen(Convert.ToInt32(boundingRectangle.X), Convert.ToInt32(boundingRectangle.Y), Point.Empty.X, Point.Empty.Y, bitmap.Size);
}
return bitmap;
}
}
}
然后,您可以通过将其称为位图来获取图像
var bitmap = myAutomationElement.ToBitmap();
于 2017-05-28T20:09:29.460 回答