本文作者:icy

Delphi-新一代跨平台绘制引擎Google Skia

icy 2023-08-09 1992 3条评论
Delphi-新一代跨平台绘制引擎Google Skia摘要: Skia是一个开源的2D图形库,提供跨平台的通用绘制API,它有着高性能、高精度、高质量。谷歌很多产品如Chrome、Android、Flutter都是用它作为图形引擎的。官网:h...

Skia是一个开源的2D图形库,提供跨平台的通用绘制API,它有着高性能、高精度、高质量。谷歌很多产品如Chrome、Android、Flutter都是用它作为图形引擎的

官网:https://skia.org/


主要功能有:

  • 2D画布和文本布局

  • GPU加速渲染

  • 支持从右到左的顺序绘制文本

  • SVG图片格式的渲染和创建

  • PDF输出

  • 各种动态效果

  • 着色语言

  • 着色器、蒙板、颜色过滤器

  • 动态图片播放器

  • 多种图片编码解码器(bmp、gif、ico、jpg、png、wbmp、webp等)

         

         

能否用于Delphi中呢?答案就是使用Skia4Delphi!

FireMonkey程序中,Skia4Delphi可以将Delphi自带的绘制引擎替换为使用Skia,而且你的应用就自动拥有如下提升:

  • 在所有平台上可以有抗锯齿效果,显示更顺滑(根据窗体的Quality属性)

  • 整体的图形绘制性能提升50%(即使使用更高的质量绘制)

  • 调整图片尺寸时质量更好(根据窗体的Quality属性)

  • 修复FMX自带引擎中的一些绘制问题

          

Skia支持的框架:

SKia不仅能在FMX和VCL工程中使用,还能在控制台程序中使用,所以在服务程序中也能使用Skia对图片进行处理。

功能集

FMX

VCL

控制台

描述

Skia API

可以使用Skia.pas来访问纯Skia库

控件

                 

TSkAnimatedImage,TSkLabel, TSkPaintBox, and TSkSvg.

应用渲染

                 

                 

替换自带的绘制引擎为Skia

          

         

Skia支持哪些操作系统?

查看Skia的官网,它上面写着:

Windows:7,8,8.1,10

MacOS:10.13+

IOS:11+

Android:4.1+

Linux:Ubuntu 18.04+,Debian 10+,openSUSE 15.2+,Fedora Linux 32+

主流的操作系统版本都是支持的。

         

                        

Skia4Delphi支持哪些Delphi版本?

通过Skia4Delphi的安装程序界面,

我们就能知道它只支持XE7以后的Delphi,

 640.png

XE7~D10.2:它只支持Windows

D10.3以后,它开始支持Android

到D11,Delphi支持的所有平台它都支持了,什么IOS、MacOS、Linux。

         

         

         

如何下载并安装Skia4Delphi?

Skia4Delphi是一套开源控件

目前最新版本是6.0.0Beta

在Github地址:

https://github.com/skia4delphi/skia4delphi

640 (1).png

安装包下载地址:

https://github.com/skia4delphi/skia4delphi/releases

安装完之后,在控件面板中可以看到Skia有五个控件:

640 (2).png

         

         

         

工程如何启用Skia?

只需要在工程中右键,在弹出菜单中选择“Enable Skia”即可。

640 (3).png

“Enable Skia”干了什么呢?

第一,它将Skia的库布署到了你的应用程序目录,

640 (4).png

第二,如果是FMX工程,那么它会在工程源码中添加了一句代码,表示将FMX自带的绘制引擎切换为使用Skia,也就是所有的FMX控件都会使用Skia进行绘制,它能提高绘制的质量和性能。

640 (5).png

         

         

         

Skia与FMX自带绘制引擎的效果比较

我用画布在PaintBox上画一些图形,代码如下:

640 (6).png

看看FMX自带引擎的效果:

640 (7).png

再看启用Skia之后的效果:

640 (8).png

一眼就能看出来了,自带引擎画圆的时候特别粗糙。

         

          

PDF输出

使用Skia你可以创建PDF文档并绘制任何东西,比如文本、图片。

640 (9).png

运行之后,生成了PDF:

640 (10).png

打开看一下:

640 (11).png

         

          

         

图片的编码解码:

Skia支持解码的图片格式(也就是能显示的图片格式)

图片格式

后缀名

Bitmap

.bmp

GIF

.gif

Icon

.ico

JPEG

.jpg,.jpeg

PNG

.png

Raw Adobe DNG Digital Negative

.dng

Raw Canon

.cr2

Raw Fujifilm RAF

.raf

Raw Nikon

.nef,nrw

Raw Olympus ORF

.orf

Raw Panasonic

.rw2

Raw Pentax PEF

.pef

Raw Samsung SRW

.srw

Raw Sony

.arw

WBMP

.wbmp

WebP

.webp

         

支持编码的图片格式(能保存为哪些图片格式)

图片格式

后缀名

JPEG

.jpg,.jpeg

PNG

.png

WebP

.webp

         

WebP是一个现在流行的图片格式,提供更卓越的无损和有损压缩。和PNG相关,WebP无损图像的文件体积小26%WebP有损图像和同等质量的JPEG图像体积小25~34% .

举个例子来演示下如何将图片编码为WebP格式:

运行之后,可以看到:

640 (12).png

640 (26).png

640 (13).png


图片格式

体积

PNG(100%质量)

513k

JPEG(80%质量)

66k

WebP(80%质量)

52k


         

自带丰富的示例:

游戏示例:

手写示例:

图像处理:

等等……

         
     相信借助Google Skia,使用Delphi开发出来的应用会越来越出色! 赶紧下载体验吧!

         

Delphi-新一代跨平台绘制引擎Google Skia

640 (21).png

640 (3).gif

Delphi-新一代跨平台绘制引擎Google Skia


相信借助Google Skia,使用Delphi开发出来的应用会越来越出色! 赶紧下载体验吧!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

分享

发表评论

快捷回复:

评论列表 (有 3 条评论,1992人围观)参与讨论
网友昵称:访客
访客 游客 沙发
2023-08-22 回复
RAD Stuido是我用过最垃圾的开发环境 没有之一
网友昵称:访客
访客 游客
2023-09-01 回复
@访客 Lazarus表示不服
网友昵称:访客
访客 游客
05-10 回复
@访客 你呢有多远滚多远!