【FMX组件合集 05】SVGIconImageList 一个牛逼的SVG图片列表控件包 下载

【FMX组件合集 05】SVGIconImageList 一个牛逼的SVG图片列表控件包 下载-Delphi 大神网
【FMX组件合集 05】SVGIconImageList 一个牛逼的SVG图片列表控件包 下载
此内容为付费资源,请付费后查看
5积分
付费资源
已售 6
欢迎加入全网最大Delphi 技术交流群 682628230

本控件包使用了三个渲染 SVG 的引擎(Delphi Image32、Skia4Delphi、Direct2D 包装器)和四个简化 SVG 图像使用的组件(调整大小、固定颜色、灰度……

正式版 4.4.2 (VCL+FMX)

元件 描述

20250301201311378-image

TSVGIconImageCollection 是 Delphi 的 SVG 图像集合,用于为 SVGIconVirtualImageLists 提供集中的图像列表(仅适用于 VCL)

20250301201338597-image

TSVGIconVirtualImageList 是 Delphi 的一个特殊的“虚拟”ImageList,链接到一个 SVGIconImageCollection(仅用于 VCL)以简化 SVG 图标的使用(调整大小、不透明度、灰度等等……

20250301201352863-image

TSVGIconImage 是 Delphi (VCL+FMX) 的扩展图像组件,用于直接显示任何 SVG 图像或包含在具有所有功能(拉伸、不透明度、灰度等)的 SVGIconImageList 中。

20250301201404946-image

TSVGIconImageList 是 Delphi (VCL+FMX) 的扩展 ImageList,带有嵌入式 SVG 图像集合。使用此组件来简化旧 Delphi 应用程序的 ImageList 替换,并获得图标的自动缩放!

安装控件包

从 4.4.0 版本开始,新的“安装程序”可读功能位于“发布”区域:下载安装程序

安装程序会自动检测您的 Delphi 版本、安装源代码、构建和安装软件包以及添加源代码路径。

20250301201435974-image

您可以直接从 WEB 搜索和下载 Icons!

从版本 4.3 开始,组件编辑器中现在提供了一项集成服务,可通过 iconify.design 提供的 API 从 WEB 下载 SVG 图标。

现在,您可以在组件编辑器中选择“从 WEB 添加”:用于搜索和从 WEB 下载的新表单可用于 VCL 和 FMX 平台。

20250301201452649-image

重要通知

从 4.0 版本开始,TSVGIconVirtualImageList 继承自 TVirtualImageList(使用 Delphi 10.3 到最新版本)。对于以前的 Delphi 版本,TSVGIconVirtualImageList 继承自 TSVGIconImageListBase

一个重要的区别是 TVirtualImageList 只能使用和创建集合中图像的子集。

虽然标准 TVirtualImageList 没有 FixedColor、GrayScale、ApplyToRootOnly 和 Opacity 属性,但这些属性存在于 TSVGIconImageCollection 中,它们将反映在链接的 TVirtualImageList 上,但如果您在集合级别更改这些属性,则所有链接的 VirtualImageList 都会更改!

因此,现在 TSVGIconVirtualImageList 还具有 FixedColor、GrayScale、ApplyToRootOnly 和 Opacity 属性,因此您只能在 VirtualImageList 级别设置这些属性,并且可以与不同的用户共享来自多个 VirtualImageList 的相同 TSVGIconImageCollection,如您在新的 SVGIconVirtualImageListDemo 中所示。

因此,如果你正在使用 Delphi 10.3 中的那些组件,建议的组合应该是 TSVGIconImageCollection + TSVGIconVirtualImageList

当您有一个包含许多链接 Actions 的大型 ImageCollection 时,也不要忘记 PreserveItems 的重要性。如果不将此属性设置为 “True”,则每次在集合中添加或删除图标时,都必须检查并更改所有 Actions 的 ImageIndex。

Delphi 10.4 版本的另一个功能是 TSVGIconImageCollection 继承自 TCustomImageCollection,因此您也可以将其与 TVirtualImage 组件一起使用,并将 SVG 图标放入 TControlList 组件中,如此处所述……

选择您喜欢的 SVG 引擎!

有三种实现方式:

  • 本机 Delphi Image32(默认),使用 Angus Johnson 的 Image32 库

  • 使用 Skia4Delphi 库,这是一个基于 Google Skia 图形库的跨平台 2D 图形 API

  • 本机 Windows Direct2D 实现的包装器

性能比较

下表显示了使用 SVGExplorer 测试的三个渲染引擎的性能,使用来自不同集合的大量图标,以 128×128 像素渲染。

图标数 图标集 Image32 D2D Skia4Delphi
997 Font-Awesome 1265 毫秒 1453 毫秒 1172 毫秒
654 Papirus 2750 毫秒(1) 937 毫秒 1266 毫秒(1)
5366 Material-Design 11015 毫秒 12001 毫秒 10688 毫秒

如您所见,这三个引擎的性能因图标及其复杂性而异。

(1)请注意,Image32 和 Skia4Delphi 是唯一能够渲染模糊效果的引擎(计算起来总是很慢):这就是渲染包含模糊效果的 Papirus 图标性能“慢”的原因。

VCL 版本的示例图像

20250301201512806-image

FMX (Windows) 版本的示例图像

20250301201523178-image

VCL SVGText 属性编辑器(VCL 和 FMX)的示例图像

20250301201537467-image

20250301201548326-image

 

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享