首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用FireMonkey(多平台)截取屏幕截图

使用 FireMonkey 截取屏幕截图

FireMonkey(多平台)是一个跨平台的框架,用于构建和部署2D和3D游戏以及交互式应用程序。虽然它主要用于游戏开发,但也可以用于创建其他类型的应用程序。在这里,我们将介绍如何使用 FireMonkey 截取屏幕截图。

方法 1:使用 TImage 和 OnPaint 事件

  1. 在您的 FireMonkey 项目中,添加一个 TImage 组件。如果需要,可以调整其位置和大小。
  2. 在您的项目中创建一个名为 OnPaint 的事件处理程序。
  3. OnPaint 事件中编写如下代码:
代码语言:markdown
复制
procedure TMyForm.OnPaint(Sender: TObject);
begin
  if (Sender is TImage) then
  begin
    TImage(Sender).Canvas.Brush.Color := clWhite;
    TImage(Sender).Canvas.Font.Color := clBlack;
    TImage(Sender).Canvas.Font.Size := 14;
    TImage(Sender).Canvas.TextOut(10, 10, 'My Application');
  end
  else
    inherited;
end;

方法 2:使用 Windows API 函数

  1. 在您的项目中添加一个名为 TScreenCapture 的类。
  2. TScreenCapture 类中,添加以下代码:
代码语言:markdown
复制
unit ScreenCapture;

interface

uses
  SysUtils, Windows, Forms, Classes, Graphics, Controls, StdCtrls, ExtCtrls,
  FMX, FMX.Platform, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls;

type
  TScreenCapture = class(TComponent)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CaptureScreen();
  end;

var
  ScreenCapture: TScreenCapture;

implementation

{$R *.fmx}

procedure TScreenCapture.CaptureScreen();
var
  Bitmap: TBitmap;
  Str: string;
begin
  // 获取当前屏幕截图
  Bitmap := TBitmap.Create;
  try
    Bitmap.SetSize(Width, Height);
    Bitmap.Canvas.Draw(0, 0, Bitmap);

    // 将截图转换为 24 位真彩色位图
    Bitmap.SetSize(Width, Height, 24);
    Str := Format('Image-%d.png', [Count]);
    Bitmap.SaveToPNG(Str);

    // 显示截图
    Image1.Picture.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
end;

end.

方法 3:使用 FireMonkey 组件中的 OnPaint 事件

  1. 在您的 FireMonkey 应用程序中,添加一个 TImage 组件。如果需要,可以调整其位置和大小。
  2. 在您的项目中创建一个名为 OnPaint 的事件处理程序。
  3. OnPaint 事件中编写如下代码:
代码语言:markdown
复制
procedure TFrmMain.FormPaint(Sender: TObject);
begin
  if (Sender is TImage) then
  begin
    TImage(Sender).Canvas.Brush.Color := clWhite;
    TImage(Sender).Canvas.Font.Color := clBlack;
    TImage(Sender).Canvas.Font.Size := 14;
    TImage(Sender).Canvas.TextOut(10, 10, 'My Application');
  end
  else
    inherited;
end;

以上三种方法都可以实现 FireMonkey 截取屏幕截图的功能。但是,由于 FireMonkey 的局限性,可能无法像原生应用程序那样截取整个屏幕,而只能截取当前 TImage 组件所在的区域。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用机器学习来检测手机上的聊天屏幕截图

如果发送或接收了大量这些屏幕截图,那么最终手机的大部分内存都将被阻塞。在保留重要图像安全的同时查找和删除这些屏幕快照是一项非常耗时的任务。...因此想用机器学习来完成这项工作 理念 从普通图像中检测聊天屏幕截图的任务可以表述为经典的二进制图像分类问题!可以使用卷积神经网络(CNN)来完成这项工作。...CNN的输入层将是一幅图像,输出层将仅包含一个神经元,告诉输入图像是正常图像还是聊天屏幕截图。在接下来的部分中,将介绍构建模型的所有细节。 数据采集 在机器学习中,一切都始于数据。...第一个表示聊天屏幕截图,另一个表示普通图像。因此从不同的消息传递应用程序(如WhatsApp,Messenger,Instagram等)中收集了与朋友聊天的屏幕截图。...保存模型后,便可以根据需要多次使用它。为了能够使用此模型预测新图像,必须将图像重塑为64 * 64 * 3并标准化像素。该脚本完成了这项工作。

2K10

Delphi XE5中的新增内容

了解更多 > 针对Android、iOS、Windows、OS X 的设备应用开发 现在您可以交付关于多个平台和设备类型的应用 – 包括智能手机、平板电脑和 PC机/笔记本电脑,并且可以更少的时间交付令人印象深刻的结果...了解更多 > RAD设备应用平台 随着支持实时通信和访问企业数据与云端服务的需要,当今的移动应用开发往往远远超出设备范围之外。...Delphi的设备应用平台使得开发人员针对多客户端操作系统和设备形状因素,可以交付真正相关的移动计算,从设备直到后端服务。...样式、音频/视频和 3D Delphi XE2 针对Windows 的64位 Delphi编译器 FireMonkey应用平台 – 利用一个代码库创建平台设备的应用 用FireMonkey创建Windows...样式、音频/视频和 3D Delphi XE2 针对Windows 的64位 Delphi编译器 FireMonkey应用平台 – 利用一个代码库创建平台设备的应用 用FireMonkey

2.2K40

【图表组件套件】上海道宁为开发人员提供Steema下载、试用、教程

01、面向Windows、Web和移动设备使用Embarcadero的RAD Studio创建一个平台项目,通过使用相同的图表组件,您可以访问Windows、Linux、iOS、Android和macOS...图片02、响应式图表TeeChart将缩放并适合任何屏幕尺寸。如果您正在构建仪表板,您可以在每个仪表板面板上放置多个可调整大小的图表。FireMonkey框架将处理不同平台的大部分变化。...05、使用数据可视化工具构建信息仪表板这个Delphi FireMonkey项目提供了一个包含图表、网格和地图的仪表板报告。...图片02、跨平台TeeGrid与VCL和FireMonkey完全兼容,为您提供了在 Windows、Android和iOS/MacOS 上采用通用核心代码进行网格化的方法。...四、TeeSuite VCL简介该套件包括一个专业的图表组件和一个易于使用的数据网格,供RAD Studio开发人员使用

2.9K10

如何使用OBS开源推流组件做平台互联网直播

我们知道,在做互联网直播时,第一步是将现场的视频信号传输到网络的过程(把采集阶段音视频数据使用传输协议封包好的内容变成数据流传输到服务器),这一步我们叫做“推流”,主要用于手机、PC直播中对实时性要求较高的场景...当然缺陷也比较明显,就是OBS仅能推流到一个平台进行直播,这对互联网直播限制很大。今天就为大家分享疫情期间学校通过OBS做平台直播的方案,此时要借助流媒体服务器完成其中的内容分发模块。...图3:桌面直播中 3、此阶段要完成服务端到各直播平台的流传输,需要在流媒体服务器后台进行转推配置 ?...图4:流媒体服务器转推配置 此时需要在哪个直播平台进行直播就配置哪个平台的直播地址即可,可多个平台同时进行,如优酷、爱奇艺、虎牙等均可以流畅直播。 ? 图5:爱奇艺平台直播

2K61

利用人工智能实现小程序自动答题

使用adb命令截取手机屏幕; 在PC端和手机端同时运行APowerMirror软件,将手机投屏到电脑上,然后使用Pillow包中的截图方法截取电脑上对应手机屏幕的 区域。...在PC端和手机端同时运行APowerMirror软件,将手机投屏到电脑上,然后使用Python调用windows的原生API截取电脑上对应手机屏幕的区域。...在PC端和手机端同时运行APowerMirror软件,将手机投屏到电脑上,然后使用Python调用windows的原生API截取电脑上对应手机屏幕的区域。...根据第二步得到的表达式,调用Python的eval()函数,得到表达式结果的正误,然后点击手机屏幕的相应区域。当截图使用投屏的方案时,点击手机屏幕通过代码点击 电脑上手机的对应区域。...#使用PC进行截图时点击手机屏幕正确区域的x坐标 'pc_tap_true_x':117, #使用PC进行截图时点击手机屏幕错误区域的x坐标 'pc_tap_false_x':365, #使用PC进行截图时点击手机屏幕正确和区域的

3.3K20

工作经验|如何在工作中优雅的截图

Snipaste是一款轻巧、易于使用截图工具,它可以快速截取屏幕上的任何区域,并提供了多种标注和编辑功能,并将截图粘贴到任何应用程序中。...2 Snipaste功能介绍Snipaste的一些常见功能:屏幕截图:它可以截取整个屏幕、窗口或自定义区域,并且支持多种截图方式,如鼠标单击、热键和拖拽等。...跨平台:它不仅适用于Windows操作系统,还可以在MacOS、Linux等平台使用。自动识别:Snipaste能够自动识别并提取屏幕上的文字和图像,方便用户进行搜索和识别。...总之,Snipaste是一款非常实用的截图工具,它可以帮助您快速截取屏幕上的任意区域,并提供了多种标注和编辑功能,让您能够更好地进行内容创作、设计和演示等工作。...3.2 截取屏幕在MacOS中,截图的快捷键是fn+F1。而在Windows中通过单击Snipaste图标,选择“全屏”或“选区”选项进行截图

23540

浅谈基于QT的截图工具的设计与实现

PS:这个动图使用了跨平台视频剪辑工具Kdenlive制作,并转为gif,有空写一个教程,哈哈。...为了达到这个目的,我们首先要考虑如何将一个区域“固定”下来。在前面,我们引入了一个状态:“是否正在捕获中”(使用isCapturing作为标记)。...在本节,我们将通过QT的API,来获取当前鼠标所在的屏幕图像,并把图像作为这个窗体的背景图。然后,我们照旧在上面进行区域的截取,来达到所谓的屏幕截图的效果。...:当处于屏幕截取完成的状态(Captured)的时候,只要按下回车键,就能将截取屏幕保存到粘贴板中,并回到Explore状态。...QT换成另一个跨平台GUI框架wxWidgets来实现,为了实现这个目的,截图模块与具体的GUI框架解耦是十分必要的。

33020

Linux一个增强的截图及分享工具:ScreenCloud

截取了很多截图,远超常人。收据、注册详细信息、开发工作、文章中程序的截图等等。...这也让我可以轻松与我的团队分享我正在使用的程序的截图。 我对这个标准的截图流程没有抱怨,打开浏览器并登录我的云,然后手动上传屏幕截图,直到我遇到 ScreenCloud。...ScreenCloud ScreenCloud是一款简单易用的跨平台截图工具,支持Linux、Mac及Windows。...ScreenCloud 的默认键盘快捷键 截取屏幕截图后,你可以设置 ScreenCloud 如何处理图像或直接将其上传到你选择的云服务。它甚至支持 SFTP。...当使用它时,当你截取屏幕截图时,你会看到编辑文件的选项。在这里,你可以在屏幕截图中添加箭头、文本和数字。 ?

1.3K11

手机自动化测试IDE-----Airtest实战篇

使用这种方法你要打开的APP必须在当前页,不可在其它页,否则搜索不到。...3.截屏加滑动屏幕 如果想要捕捉操作截图的话,可以使用Snapshot进行截图,记得指定绝对地址哦。...然后我们需要使用Swipe的帮助,有了它我们可以进行滑动屏幕的操作了,如下: ? 这行代码是我通过截取视频中两个地方的图像然后才得到的方法参数,这里是向量位移的操作。...我们可以看到我们进行了这么操作,但是都是一些图片,而且图片有的大有的小,看着不美观,我们其实可以将这些图片转换为代码,如下: ?...4.不断滑动屏幕 那么重点来了,我们该如何将它重复一直滑动了,很简单,死循环,顺便给它加个随机延时。

97930

Snagit for mac(强大的屏幕截图工具)v2023.0.2激活版

SnagIt for Mac是款适合Mac平台使用屏幕捕捉工具。SnagIt for Mac不仅能够截取mac屏幕上的静态图片,还能够截取mac屏幕上的动态图片。...图片Snagit for mac(强大的屏幕截图工具)SnagIt for Mac软件特色 1.屏幕截图重新构想      TechSmith Snagit 2020以极其强大的方式为生活带来了截图。...全新的图像编辑功能可让您真正转换屏幕截图。文本捕获等熟悉的功能可以带来回报。更先进的屏幕录像机可为您提供更流畅,更专业的录音。 2.明智之举      切换以自动使屏幕中的对象捕获可移动。...重新排列按钮,删除文本或编辑屏幕截图中的其他元素。现在,即使您正在记录的软件或技术发生变化,您的图形也始终保持最新状态。 3.抓住文字      Grab Text快速从屏幕截图中提取文本。...从错误消息,弹出窗口或文件菜单中捕获屏幕文本。无需重新输入所有文本即可轻松复制信息。 4.文字替换      现在,Snagit可以识别屏幕截图中的文本以便快速编辑。

71020

Snagit for mac(强大的屏幕截图工具)汉化直装版

Snagit for mac是款适合Mac平台使用屏幕捕捉工具。SnagIt for Mac不仅能够截取mac屏幕上的静态图片,还能够截取mac屏幕上的动态图片。...图片Snagit for macSnagIt for Mac软件特色 1.屏幕截图重新构想      TechSmith Snagit 2020以极其强大的方式为生活带来了截图。...全新的图像编辑功能可让您真正转换屏幕截图。文本捕获等熟悉的功能可以带来回报。更先进的屏幕录像机可为您提供更流畅,更专业的录音。 2.明智之举      切换以自动使屏幕中的对象捕获可移动。...重新排列按钮,删除文本或编辑屏幕截图中的其他元素。现在,即使您正在记录的软件或技术发生变化,您的图形也始终保持最新状态。 3.抓住文字      Grab Text快速从屏幕截图中提取文本。...从错误消息,弹出窗口或文件菜单中捕获屏幕文本。无需重新输入所有文本即可轻松复制信息。 4.文字替换      现在,Snagit可以识别屏幕截图中的文本以便快速编辑。

1K20

精准记录:使用 Playwright 实现屏幕截图

前言在软件开发和测试中,屏幕截图是一种常用的工具,用于记录应用程序的状态、错误信息等。...Playwright 提供了一种简单而强大的方式来实现屏幕截图,帮助开发人员和测试人员轻松捕获和分析应用程序的界面。本文将介绍如何使用 Playwright 实现屏幕截图。...screenshot 截图在 Playwright 中,要实现屏幕截图非常简单。你只需要调用 page 对象的 screenshot() 方法,并指定保存截图的文件路径即可。...以下是一个示例:捕获屏幕截图并将其保存到文件中的快速方法:page.screenshot(path="screenshot.png")使用示例from playwright.sync_api import...:截取长图设置full_page=True 参数 screenshot 是一个完整的可滚动页面的屏幕截图,就好像你有一个非常高的屏幕并且页面可以完全容纳它。

27010

如何优雅的对网页截取长图

点击长截图后往下滚动,截图效果: ? 除了滚动截图qq还有屏幕识图(就是ocr了)。 ? 识图效果还行,就是不方便复制,还是天若ocr软件更好用点。 ?...这里打开上不了谷歌如何安装 Chrome 扩展?这篇文章,选择捕捉选定区域。 ? 然后复制截取的长图。 ?...FastStone FastStone Capture 是一款体积小巧、功能强大、简单易用的屏幕捕捉工具,集屏幕截图、图像编辑、视频录制功能于一身。 ?...点击捕获滚动窗口,然后滚动鼠标下滑,按esc停止 ,选中要截取的范围。 ? 生成的长图效果跟QQ差不多。 如果不想使用软件其实谷歌浏览器就自带截图功能。...总结下,如果想简单点使用QQ就行了,想对截取的长图再操作推荐软件FastStone 。

1.2K10

《最新出炉》系列初窥篇-Python+Playwright自动化测试-37-如何截图-上篇

使用该API,只需要指定截图的图片的保存路径及文件名即可。如果仅指定文件名,默认保存在当前目录。...clip:指定结果图像剪裁的对象clip={'x': 10 , 'y': 10, 'width': 10, 'height': 10}3.快速截图截取当前屏幕)playwright除了可以截取当前屏幕...这是捕获屏幕截图并将其保存到文件中的快速截图(如果仅仅截取当前屏幕(浏览器)上能看到的部分)语法如下:page.screenshot(path="screenshot.png")3.1实战示例# coding...Created on 2023-11-23@author: 北京-宏哥公众号:北京宏哥Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-36-如何截图'''# 3....如下图所示:4.整页截图截取整个页面)有时候,页面可能会比较长,一个屏幕无法全部展示出来。如果想截取整个页面,怎么办呢?

41910

Linux下截屏并编辑的最佳工具

尽管使用默认的键盘快捷键也可以获取屏幕截图,但如果使用屏幕截图工具,可以更方便地对屏幕截图进行编辑。...本文将会介绍在不适用第三方工具的情况下,如何通过系统自带的方法和工具获取屏幕截图,另外还会介绍一些可用于 Linux 的最佳截图工具。...方法 1:在 Linux 中截图的默认方式 你想要截取整个屏幕屏幕中的某个区域?某个特定的窗口? 如果只需要获取一张屏幕截图,不对其进行编辑的话,那么键盘的默认快捷键就可以满足要求了。...但如果要在不把屏幕截图导入到其它应用程序的情况下对屏幕截图进行编辑,还是使用屏幕截图工具比较方便。 方法 2:在 Linux 中使用 Flameshot 获取屏幕截图并编辑 ?...点击 “Snap” 截取屏幕截图,图像将自动显示在 GIMP 中可供编辑。 方法 5:在 Linux 中使用命令行工具获取屏幕截图 这一节内容仅适用于终端爱好者。

3.2K11

社交垂直探索 | QQ截图全新设计

其次图片是一种基础且通用的文件格式,在不同的终端甚至云端都可以便捷地保存和查看,不依赖也不受限于任一应用,可快捷地分享到不同社交平台,方便传播。...解决屏幕外的视界 随着现在电脑屏幕越来越大,处理的窗口越来越多。用户对截取的范围提出了更高的要求,对于屏幕显示不全、带滚动条的内容,目前QQ截图均无法完成截取。...所以,如何帮助用户扩大截图范围是这次设计的重点。 工欲善其事必先利其器,所以在功能上,QQ截图需要增加截长图能力让用户在截图过程中,对不同场景都能提供合理的解决方案。...这时提供及时的引导能帮助和指导用户如何纠正截图范围,辅助用户顺利进行截取,减少失败带来的挫败感,也避免中断截图流程。...▍最简单的操作成本 截长图的截取采用滚动截取的方式,一方面可以让用户一边截图一边校验截图长度,另一方面鼠标滚动比起鼠标拖拽操作更轻松简单也和用户日常浏览长图、网页保持一致的交互方式。

1.3K40

推荐一个比较好的操作鼠标键盘的python库

最后找到了pyautogui PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,平台支持(Windows,OS X,Linux)。...'',title='',button=['OK','Cancle']) 显示警告对话框 confirm() 显示确认对话框 prompt() 显示提示对话框 password() 显示密码输入对话框 屏幕截图和定位函数...截取屏幕的函数,也可以从屏幕中寻找匹配的图片,并返回其坐标。...screenshot('image.png') 保存截图并返回截图,无参版本直接返回截图不保存 center('image.png') 从屏幕上寻找图片位置,返回框位置 locateOnScreen('...('my_screenshot2.png') 屏幕查找图片位置并获取中间点 #在当前屏幕中查找指定图片(图片需要由系统截图功能截取的图) coords = pyautogui.locateOnScreen

6.9K30

如何在 Fedora 工作站上截图

Screenshot 模式 Screenshot 有三种主要截图模式: 截取整个屏幕 截取当前窗口 截取选定区域 <p class="article_img...延迟<em>截取</em>:允许您指定要等多少秒才进行<em>截图</em>。它用于<em>截取</em>稍后才显示的内容。 延迟抓取只能用于“<em>截取</em>整个<em>屏幕</em>”和“<em>截取</em>当前窗口”两种模式。 <em>截取</em>当前窗口模式的额外选项最多。...如果<em>使用</em>“<em>截取</em>选定区域”模式,按下“截屏”按钮后,你的鼠标指针将会变成十字光标型指针。只需单击并拖动选择<em>截图</em>区域即可。... – <em>截取</em>整个桌面的<em>屏幕</em><em>截图</em>并保存你的照片文件夹 Alt + Printscreen – <em>截取</em>目前获得焦点的窗口<em>截图</em>并保存你的照片文件夹 Shift + Printscreen...– 选定区域<em>截取</em>并将其保存到你的照片文件夹 Ctrl + Printscreen – <em>截取</em>整个桌面的<em>屏幕</em><em>截图</em>并将其复制到剪贴板 Ctrl + Alt + Printscreen

1.4K00

滚动截图:更人性化的长截图工具

听起来不错的样子那么具体使用起来如何呢?...让我们一起去试试看~   首次进入应用时,会收到系统的提示:"滚动截图将开始截取您的屏幕上的所有内容",我们需要点击"立即开始"赋予应用权限才能正常使用,点击右下角"+"按钮,应用会自动转到主屏幕并弹出提示来指导我们应该如何使用这个应用...:   按照使用提示,我们需要打开想要截图的界面,点击右下角的"开始"悬浮按钮进入长截图状态,值得注意的是,我们仅仅需要用手指滑动屏幕就可以完成截图了,为了保证截图质量,手指最好在屏幕上滑动小于半个屏幕的长度的距离后松开...,再进行下次滑动的操作,当滑动到你想截取截图末尾时,点击右下角的"停止"悬浮按钮即可停止截图并跳回"滚动截图"应用内。...整个过程一气呵成,你需要做的仅仅是点击"开始/停止"按钮和滚动屏幕而已,无需等待拼接截图,"所截即所得",是不是很棒呢~   这是小苏的劳动成果~   强迫症选项:   由于应用使用的是Android

1.3K10
领券