| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Skia4Delphi 在 Delphi 里面利用 Skia 画图 -> 正文阅读 |
|
[开发工具]Skia4Delphi 在 Delphi 里面利用 Skia 画图 |
简介Skia 是一个 2D 库,画图性能非常好。是由 Google 开源出来的。 在 Delphi 里面如何使用这个 2D 库,来利用它提供的一些好处? 有一个开源的项目,Skia4Delphi 很好地解决了这个问题。它使得 Delphi 的 VCL 程序和 FMX 程序都能利用 Skia 库来画 2D 图。比如,可以用 Delphi 的程序来显示 WebP 这种格式的图,SVG 的图,等等。当然,Skia 还有很多 2D 图的算法。 这个开源项目在:https://github.com/skia4delphi/skia4delphihttps://github.com/skia4delphi/skia4delphi 在 Delphi 里面,也可以通过 IDE 的 GetIt 菜单来安装它。? 简单的使用测试首先,它自己带的例子程序,非常棒。基本上演示了所有功能。想要知道如何使用,看例子程序的代码就可以了。 我的测试我测试了 FMX 的程序。在 Delphi 里面,自己新建一个跨平台项目,这样就创建了一个基于 FMX 的程序。 拖一个 TArc 到界面上,设置其 Stroke 属性的 Kind 为 Gradient,同时设置其 Gradient 属性(鼠标点击属性面板上对应条目右边的小按钮,弹出设置窗口)对应的开始颜色和结束颜色。马上就可以在设计期的屏幕上,看到一个半圆弧,颜色是渐变色的。为了看得明显,设置 Stroke 的 Thickness 属性为 10,它的线条变粗。 编译目标平台设置为 WIN32,点 IDE 的运行按钮,Delphi 将这个程序编译为 Windows 程序并运行,从运行的程序上看,这个半圆和设计期屏幕上看到的一样。 编译目标平台设置为 Android,把手机插到电脑上,点 IDE 的运行按钮,稍等一会后,APP 在手机上安装并运行。这时候我们会发现,这个半圆,在手机屏幕上,是黑色的。和设计期设置的渐变色没有丝毫关系。这是我使用 Delphi 10.4.2 得到的结果。这个应该是 FMX 的一个 BUG。不知道截止目前为止最新的 Delphi 11 解决了这个问题没有。另外,手机屏幕上的这个半圆,不平滑,仔细看,似乎是折线拼凑的,而不是一个圆滑的半圆。 当把这个测试程序,改为使用 Skia 库来画图以后,这个半圆在我的安卓手机上,显示正常。渐变颜色正常,也非常平滑。 如何让程序支持 Skia工程的源文件增加 Skia 的相关声明代码,例子如下:
GlobaUseSkia 这一行加上后,FMX 的其它图形控件,不用修改代码,也自动变为使用 Skia 库画图。当然,Skia4Delphi 安装在 IDE 里面后,控件面板上会出现一些 Skia 自己的控件,有一些和 FMX 自己带到控件不一样的功能,可以通过 Skia4Delphi 自己带到例子代码去查看都有些什么新功能。 我的测试程序就是加上这个声明以后,让 FMX 原来的 TArc 在安卓上变正常了。 另外,还需要在 IDE 窗口右边的 Projects 窗口里面,选择这个工程的名字,鼠标右键下拉菜单里面,有一个 Enable Skia 的菜单(我通过 GetIt 安装的,可能它自动增加了这个菜单),选择这个菜单。 ? 编译目标平台如果是安卓,选择上述菜单后,从 IDE 的 Project ->?Deployment 菜单出来的窗口里面,可以看到增加了两个 libsk4d.so 被添加到需要 delply 的文件列表里面了。如果没有这两个文件一起发布,则 APP 在手机上运行会闪退。这两个 libsk4d.so 来自安装后的 Skia4Delphi 的文件夹里面。 ?关于 iOS,Skia4Delphi 的官方说法是支持 iOS 的。下载的 Skia4Delphi 的文件夹底下,也有 iOS 的 库。但是,在 Delphi 10.4.2 里面把程序的编译目标设置为 iOS 然后 Build 会弹出 Skia4Delphi 不支持当前这个 Delphi 版本的警告窗口,编译失败。不知道最新版的 Delphi 11 是不是解决了这个问题。当然,在 iOS 底下,可以使用苹果官方的图形库 Metal,在上述 GlobalUseSkia 的那行代码的位置,写成 GlobalUseMetal := True 我猜应该可以解决 FMX 自己的画图算法有问题的 BUG,在 iOS 底下是否可以解决圆弧不圆滑的问题,没有测试。 One More ThingSkia4Delphi 这个项目自己带到例子,在 \Ski4Delphi\Samples\Demo\FMX\Projects 底下,它的例子程序在 Win32 和 Android 底下我编译运行成功。看这个例子的源代码,其代码框架非常有意思,值得仔细分析和学习。下次有时间写一下这个代码框架的有意思之处。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/14 15:17:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |