-
Notifications
You must be signed in to change notification settings - Fork 98
/
README.htm
511 lines (511 loc) · 23.1 KB
/
README.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
<style type="text/css">
code{
font-family: "Consolas", monospace;
}
pre{
border: 1px solid #ddd;
border-left: 3px solid #f36d33;
overflow: auto;
padding: 1em 1.5em;
display: block;
}
Blockquote{
border-left: 3px solid #d0d0d0;
padding-left: 0.5em;
margin-left:1em;
}
Blockquote p{
margin: 0;
}
table{
border:1px solid;
border-collapse:collapse;
}
th{ padding:5px;
border:1px solid;
}
td{
padding:5px;
border:1px solid;
}
</style>
<h1>SVGIconImageList <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg" alt="License"/></a></h1>
<h2>Three engines to render SVG (Delphi Image32, Skia4Delphi, Direct2D wrapper) and four components to simplify use of SVG images (resize, fixedcolor, grayscale…)</h2>
<h3>Actual official version 4.3.0 (VCL+FMX)</h3>
<table>
<tr>
<th>Component</th>
<th>Description</th>
</tr>
<tr>
<td><img src="./Packages/SVGIconImageCollectionComponentIcon.png" alt="SVGIconImageCollectionComponentIcon.png"/></td>
<td><strong>TSVGIconImageCollection</strong> is collection of SVG Images for Delphi to provide a centralized list of images for SVGIconVirtualImageLists (only for VCL)</td>
</tr>
<tr>
<td><img src="./Packages/SVGIconVirtualImageListComponentIcon.png" alt="SVGIconVirtualImageListComponentIcon.png"/></td>
<td><strong>TSVGIconVirtualImageList</strong> is a special “virtual” ImageList for Delphi linked to an SVGIconImageCollection (only for VCL) to simplify use of SVG Icons (resize, opacity, grayscale and more…)</td>
</tr>
<tr>
<td><img src="./Packages/SVGIconImageComponentIcon.png" alt="SVGIconImageComponentIcon.png"/></td>
<td><strong>TSVGIconImage</strong> is an extended Image component for Delphi (VCL+FMX) to show any SVG image directly or included into a an SVGIconImageList with all functionality (stretch, opacity, grayscale and more…)</td>
</tr>
<tr>
<td><img src="./Packages/SVGIconImageListComponentIcon.png" alt="SVGIconImageListComponentIcon.png"/></td>
<td><strong>TSVGIconImageList</strong> is an extended ImageList for Delphi (VCL+FMX) with an embedded SVG image collection. Use this component to simplify replace of ImageList for older Delphi Apps and obtain auto-scaling of Icons!</td>
</tr>
</table>
<h2>Now you can search and download Icons directly from the WEB!</h2>
<p>From version 4.3 an integrated service is now available in the component editor to download SVG icons from the WEB, via the API provided by <a href="https://iconify.design/">iconify.design</a>.</p>
<p>Now you can select “Add from WEB” in the Component Editor: a new form to search and Download from the WEB is available for both VCL and FMX Platforms.</p>
<p><img src="./Demo/Images/SVG_REST_Client_Search.jpg" alt="SVG_REST_Client_Search"/></p>
<p>Read the <a href="https://github.com/EtheaDev/SVGIconImageList/wiki/RESTAPISearch">wiki page</a> to understand how to easily download SVG icons from the WEB and include them in the SVGIconImageList or SVGIconImageCollection.</p>
<h2>Important notice</h2>
<p>From version 4.0, <strong>TSVGIconVirtualImageList</strong> inherits from <strong>TVirtualImageList</strong> (using Delphi 10.3 to latest). For previous Delphi versions <strong>TSVGIconVirtualImageList</strong> inherits from <strong>TSVGIconImageListBase</strong>.</p>
<p>An important difference is that a TVirtualImageList may use and create only a subset of the images in the collection.</p>
<p>Although, the standard TVirtualImageList does not have the FixedColor, GrayScale, ApplyToRootOnly and Opacity properties, these properties exist at the TSVGIconImageCollection and they would be reflected on the linked TVirtualImageList, but if you change those properties at collection level, all the VirtualImageList linked changes!</p>
<p>For this reasons, now TSVGIconVirtualImageList have also FixedColor, GrayScale, ApplyToRootOnly and Opacity properties, so you can setup those properties only at VirtualImageList level, and you can share the same TSVGIconImageCollection from many VirtualImageList with different poperties, as you can see in the new SVGIconVirtualImageListDemo.</p>
<p>For this reason, if you are using those components from Delphi 10.3, the recommended combination should be <strong>TSVGIconImageCollection + TSVGIconVirtualImageList</strong>.</p>
<p>Don't forget also the importance of PreserveItems when you have a large ImageCollection with many linked Actions. Without setting this property to “True”, everytime you add or remove an icon in the collection, you have to check and change the ImageIndex of all the Actions.</p>
<p>Another feature available from Delphi 10.4 version, is that <strong>TSVGIconImageCollection</strong> inherits from TCustomImageCollection, so you can also use it with the TVirtualImage component and place SVG icons into the TControlList component, as explained <a href="https://github.com/EtheaDev/SVGIconImageList/wiki/TControlList-with-SVGIconImageCollection">here…</a></p>
<h2>Choose your preferred SVG engine!</h2>
<p>There are three implementation:</p>
<ul>
<li><p><strong>Native Delphi Image32</strong> (default), uses Image32 library by Angus Johnson</p>
</li>
<li><p>Using <strong>Skia4Delphi</strong> library, a cross-platform 2D graphics API based on Google's Skia Graphics Library</p>
</li>
<li><p>A wrapper to the native Windows <strong>Direct2D</strong> implementation</p>
</li>
</ul>
<p>You can read more details <a href="https://github.com/EtheaDev/SVGIconImageList/wiki/Choice-of-Factories">here.</a></p>
<h2>Performance comparison</h2>
<p>This table shows the performance of the three rendering engines tested with SVGExplorer, using a significant amount of icons from different sets, rendered at 128x128 pixels.</p>
<table>
<tr>
<th align="right">Count</th>
<th align="left">Icon set</th>
<th align="right">Image32</th>
<th align="right">D2D</th>
<th align="right">Skia4Delphi</th>
</tr>
<tr>
<td align="right">997</td>
<td align="left">Font-Awesome</td>
<td align="right">1265ms</td>
<td align="right">1453ms</td>
<td align="right">1172ms</td>
</tr>
<tr>
<td align="right">654</td>
<td align="left">Papirus</td>
<td align="right">2750ms<sup>(1)</sup></td>
<td align="right">937ms</td>
<td align="right">1266ms<sup>(1)</sup></td>
</tr>
<tr>
<td align="right">5366</td>
<td align="left">Material-Design</td>
<td align="right">11015ms</td>
<td align="right">12001ms</td>
<td align="right">10688ms</td>
</tr>
</table>
<p>As you can see, the three engines perform differently depending on the icons and their complexity.</p>
<p><sup>(1)</sup>Notice that Image32 and Skia4Delphi are the only engines capable of rendering blur effect (that is always slow to calculate): this is the reason of “slow” performance to render Papirus icons that contains blur effect.</p>
<h3>Available from Delphi XE3 to Delphi 12 (VCL and FMX Platforms)</h3>
<p><img src="./Demo/Images/SupportingDelphi.jpg" alt="Delphi 12 Support"/></p>
<p>Related links: <a href="https://www.embarcadero.com">embarcadero.com</a> - <a href="https://learndelphi.org">learndelphi.org</a></p>
<p><strong>Sample image of VCL version</strong></p>
<p><img src="./Demo/Images/Sample.jpg" alt="Sample.jpg"/></p>
<p><strong>Sample image of FMX (Windows) version</strong></p>
<p><img src="./Demo/Images/SampleFMX.jpg" alt="SampleFMX.jpg"/></p>
<p><strong>Sample images of the VCL SVGText-property editor (VCL and FMX)</strong></p>
<p><img src="./Demo/Images/SVGTextPropertyEditor.jpg" alt="SVGTextPropertyEditor.jpg"/></p>
<p><img src="./Demo/Images/SVGTextPropertyEditorFMX.jpg" alt="SVGTextPropertyEditorFMX.jpg"/></p>
<h3>UTILITIES</h3>
<p>The <a href="https://github.com/EtheaDev/SVGIconImageList/wiki/SVG-Viewer-(VCL)">SVG Viewer Demo</a> is useful to check the rendering quality of the engines available.</p>
<p>The <a href="https://github.com/EtheaDev/SVGIconImageList/wiki/SVGIconExplorer">SVG Icon Explorer</a> utility is useful to explore and preview your svg image collections.</p>
<p>You can use <a href="https://github.com/EtheaDev/SVGShellExtensions">SVG Shell Extensions</a> if you want to see your icons directly into Windows Explorer or you want to edit them using a powerful <strong>SVG Text Editor</strong>.</p>
<h3>DOCUMENTATION</h3>
<p>Follow the <a href="https://github.com/EtheaDev/SVGIconImageList/wiki">guide in Wiki section</a> to known how to use those components to modernize your Delphi VCL or FMX Windows applications scalable, colored and beautiful with few lines of code.</p>
<h3>Other similar library</h3>
<p>A similar project made by Ethea for Icon Fonts: <a href="https://github.com/EtheaDev/IconFontsImageList">https://github.com/EtheaDev/IconFontsImageList</a></p>
<h3>RELEASE NOTES</h3>
<p>26 Nov 2024: version 4.3.0 (VCL+FMX)</p>
<ul>
<li>Updated to Image32 4.6 Released 26 Nov 2024 to fix issue drawing text inside SVG</li>
<li>NameSpace added to all uses</li>
<li>Added SVGIconImageListRestClient package</li>
<li>New Option in Component Editor to select Icons from WEB (VCL and FMX)</li>
<li>Demos updated</li>
</ul>
<p>17 Oct 2024: version 4.2.1 (VCL+FMX)</p>
<ul>
<li>Updated to Image32 4.6 Released 16 Oct 2024 to fix some drawing issue</li>
</ul>
<p>12 Oct 2024: versione 4.2.0 (VCL+FMX)</p>
<ul>
<li>Updated to Image32 4.6 Released 12 Oct 2024 to fix some drawing issue</li>
<li>Added components info into About and Splash Screen</li>
</ul>
<p>14 Sep 2024: version 4.1.9 (VCL+FMX)</p>
<ul>
<li>Aligned to Image32 4.5 Version of 14 September 2024</li>
<li>Fixed Range Error rendering some icons (Image32 engine)</li>
<li>Fixed Rename Icon in FireMonkey ImageList Editor</li>
<li>Aggiornamento packages Delphi 12.2</li>
</ul>
<p>27 Aug 2024: version 4.1.8 (VCL+FMX)</p>
<ul>
<li>Aligned to Image32 4.5 Version of 18 August 2024</li>
<li>Fixed rendering with Opacity for Skia4Delphi and D2D Engines</li>
</ul>
<p>13 Aug 2024: version 4.1.7 (VCL+FMX)</p>
<ul>
<li>Updated packages for compilation with Skia4Delphi (defined by SVGIconImageList.inc)</li>
<li>Fixed uses for skia unit</li>
<li>Aligned to Image32 4.5 Version of 11 August 2024</li>
</ul>
<p>18 Jul 2024: version 4.1.6 (VCL+FMX)</p>
<ul>
<li>Aligned to Image32 4.5 Version of 17 July 2024</li>
<li>Fixed color of icons in Android</li>
<li>Added define to use old OpenPicture Dialog into component editor.</li>
</ul>
<p>22 May 2024: version 4.1.5 (VCL+FMX)</p>
<ul>
<li>Fixed TSVGIconImageListBase.Assign</li>
<li>Fixed TSVGIconImageCollection registration for FMX projects</li>
<li>Aligned to Image32 version of 14 May 2024</li>
</ul>
<p>05 May 2024: version 4.1.4 (VCL+FMX)</p>
<ul>
<li>Aligned To latest Image32 ver. 4.4</li>
</ul>
<p>19 Apr 2024: version 4.1.3 (VCL+FMX)</p>
<ul>
<li>Aligned To latest Image32</li>
<li>Fixed compilation with MacOSX</li>
<li>Added support for Delphi 12.1</li>
</ul>
<p>08 Jan 2024: version 4.1.2 (VCL+FMX)</p>
<ul>
<li>Aligned To latest Image32</li>
<li>Added copy SVG to Clipboard into “Export to png” dialog</li>
<li>Updated Copyrights</li>
</ul>
<p>09 Nov 2023: version 4.1.1 (VCL+FMX)</p>
<ul>
<li>Aligned To Skia4Delphi 6.0.0</li>
<li>Added FMX Components to all platform</li>
<li>Fixed Demos for Delphi 12</li>
<li>Added SvgDisableEngineHint option</li>
</ul>
<p>03 Sep 2023: version 4.1.0 (VCL+FMX)</p>
<ul>
<li>Aligned Image32 Library released on 03/09/2023</li>
<li>Fixed demo (removed “obsolete” SVGColor uses)</li>
<li>Added support for Delphi 12.1</li>
</ul>
<p>24 Aug 2023: version 4.0.0 (VCL+FMX)</p>
<ul>
<li>Removed old “native” engine TSVG</li>
<li>Updated to Skia4Delphi ver. 6.0.0</li>
<li>TSVGIconVirtualImageList inherits from TVirtualImageList (from D10.3 to actual version).</li>
<li>Added SVGIconVirtualImageListDemo to test multiple TSVGIconVirtualImageList in same form</li>
<li>Added support for Delphi 12</li>
</ul>
<p>28 Feb 2023: version 3.9.6 (VCL+FMX)</p>
<ul>
<li>Updated to Image32 ver. 4.4 (30 Jan 2023)</li>
<li>Updated to Skia4Delphi ver. 4.1.1 (26 Feb 2023)</li>
</ul>
<p>13 Jan 2023: version 3.9.5 (VCL+FMX)</p>
<ul>
<li>Updated Copyright 2023</li>
<li>Updated to Image32 ver. 4.3 (27 Sep 2022)</li>
<li>Updated to Skia4Delphi ver. 4.0.2</li>
</ul>
<p>23 Oct 2022: version 3.9.4 (VCL+FMX)</p>
<ul>
<li>FMX Component editor: changed selection for fixed color</li>
<li>Updated to Image32 ver. 4.3 (27 Sep 2022)</li>
</ul>
<p>15 Sep 2022: version 3.9.3 (VCL+FMX)</p>
<ul>
<li>Removed W11 Styles from Demo (available in Delphi only by Get-it)</li>
<li>Updated D11 packages to Delphi 11.2</li>
</ul>
<p>28 Aug 2022: version 3.9.2 (VCL+FMX)</p>
<ul>
<li>Fixed #240 TSVGGraphic.Assign</li>
<li>Updated to Image32 ver. 4.2 (28 July 2022)</li>
<li>Updated to Skia4Delphi 3.4.1 library</li>
<li>Fixed #241 Alignment from Source and Destination Items (FMX)</li>
</ul>
<p>21 Jun 2022: version 3.9.1 (VCL+FMX)</p>
<ul>
<li>Added support for other Delphi versions (VCL): D10 Seattle</li>
</ul>
<p>08 May 2022: version 3.8.3 (VCL+FMX)</p>
<ul>
<li>Updated to Skia4Delphi 3.4.0 library</li>
<li>SVGExplorer example moved under “Demo” folder</li>
</ul>
<p>10 Apr 2022: version 3.8.2 (VCL+FMX)</p>
<ul>
<li>Updated to Skia4Delphi 3.3.1 llibrary</li>
<li>Updated to Image32 4.11 library</li>
</ul>
<p>29 Mar 2022: version 3.8.1 (VCL+FMX)</p>
<ul>
<li>Fixed Aspect-Ratio for Skia engine</li>
<li>Updated SVGViewer</li>
<li>Updated Demos</li>
<li>Alignment to latest Skia4Delphi version</li>
</ul>
<p>17 Mar 2022: version 3.8.0 (VCL+FMX)</p>
<ul>
<li>Support for Delphi 11.1</li>
<li>Updated Library suffix for Delphi 10.4 and 11 to (auto)</li>
</ul>
<p>09 Mar 2022: version 3.7.0 (VCL+FMX)</p>
<ul>
<li>Support for Skia4Delphi 3.2.0 completed</li>
<li>Removed support for Cairo Engine</li>
<li>Fixed rendering with Image32</li>
</ul>
<p>28 Feb 2022: version 3.6.0 (VCL + FMX)</p>
<ul>
<li>Support for Skia4Delphi also in FMX platforms</li>
</ul>
<p>26 Feb 2022: version 3.5.2 (VCL+FMX)</p>
<ul>
<li>Fixed rendering with FMX-Image32</li>
</ul>
<p>23 Feb 2022: version 3.5.1 (VCL+FMX)</p>
<ul>
<li>Updated Image32 Library to 4.1.0 version</li>
<li>Updated support to Skia4Delphi 3.1.0</li>
</ul>
<p>19 Feb 2022: version 3.5.0 (VCL+FMX)</p>
<ul>
<li>Updated Image32 Library to 4.0.2 version</li>
<li>Updated support to Skia4Delphi 3.0.3</li>
<li>Fixed SVGText Editor</li>
<li>Fixed some Skia4Delphi SVG rendering</li>
</ul>
<p>14 Feb 2022: version 3.4.0 (VCL+FMX)</p>
<ul>
<li>Updated Image32 Library to 4.0.1 version</li>
<li>Added support to Skia4Delphi 3.0</li>
<li>Fixed some Image32 drawing problem</li>
</ul>
<p>13 Jan 2022: version 3.3.0 (VCL+FMX)</p>
<ul>
<li>Updated Image32 library to 4.0.0 version</li>
<li>Added a set of playing cards svg examples</li>
<li>Fixed Image32 drawing problem with “playing cards”</li>
</ul>
<p>24 Nov 2021: version 3.2.0 (VCL+FMX)</p>
<ul>
<li>Component Editors uses IDE themes (light, dark…) and style</li>
<li>Fixed available components into palette when working with mobile platforms</li>
</ul>
<p>05 Nov 2021: version 3.1.1 (VCL+FMX)</p>
<ul>
<li>Fixed Image32 drawing problem in FMX</li>
<li>Added Export to multiple png files to Component Editor</li>
</ul>
<p>31 Oct 2021: version 3.1.0 (VCL+FMX)</p>
<ul>
<li>Updated Image32 library to 3.4.1 version</li>
<li>Added Skia4Delphi engine (not complete)</li>
</ul>
<p>28 Aug 2021: version 3.0.0 (VCL+FMX)</p>
<ul>
<li>Updated Packages for Delphi 11</li>
<li>Updated some documentation (Images and Wiki)</li>
</ul>
<p>24 Aug 2021: version 2.5.0 (VCL+FMX)</p>
<ul>
<li>Aligned to Image32 library ver.3.1</li>
</ul>
<p>22 Jul 2021: version 2.4.0 (VCL+FMX)</p>
<ul>
<li>Updated and aligned to Image32 ver.3 library</li>
<li>Added packages for Delphi 11 Alexandria</li>
</ul>
<p>18 Jul 2021: version 2.3.1 (VCL+FMX)</p>
<ul>
<li>Fixed rendering files with color defined by 8 digits</li>
</ul>
<p>17 Jul 2021: version 2.3.0 (VCL+FMX)</p>
<ul>
<li>Added new engine: Image32 library by Angus Johnson (VCL+FMX)</li>
<li>Image32 is now the default native Delphi engine</li>
<li>Added support for Android and iOS platforms (by Image32 engine)</li>
<li>Added support for backward Delphi versions (from XE3)</li>
<li>Added demo to compare the four engines (SVGViewer)</li>
<li>Fixed rendering “centered” in SVGIconImage for Cairo engine.</li>
<li>Warning: changed TSVGIconImage component ancestor from TCustomControl to TGraphicControl</li>
</ul>
<p>18 Apr 2021: version 2.2.6 (VCL+FMX)</p>
<ul>
<li>Added new ApplyFixedColorToRootOnly property</li>
<li>Added demo for new TControlList component (only for D10.4.2)</li>
</ul>
<p>22 Feb 2021: version 2.2.5 (VCL+FMX)</p>
<ul>
<li>Added export to PNG option into Component editor</li>
</ul>
<p>23 Jan 2021: version 2.2.4 (VCL+FMX)</p>
<ul>
<li>Fixed #156 Stretch for SVGIconImage</li>
<li>Fixed #157 SVGIconImage gets correct image from VirtualImageList</li>
</ul>
<p>17 Jan 2021: version 2.2.3 (VCL+FMX)</p>
<ul>
<li>Fixed #151 Antialiasing problems</li>
<li>Fixed settings of different Width and Height into editor</li>
<li>Fixed preview of icon with different Height and Width into editor</li>
</ul>
<p>24 Dec 2020: version 2.2.2 (VCL+FMX)</p>
<ul>
<li>Added Width, Height and Zoom property for FMX components</li>
<li>Redesigned FMX component editor</li>
<li>Fixed VCL component editor</li>
</ul>
<p>08 Dec 2020: version 2.2.1 (VCL+FMX)</p>
<ul>
<li>Added 64bit platforms for packages</li>
<li>Minor fixes (empty except blocks)</li>
<li>Fixed TSVGIconImage inherited color</li>
<li>Fixed repaint for FMX version</li>
</ul>
<p>23 Sep 2020: version 2.2.0 (VCL+FMX)</p>
<ul>
<li>Added “Cairo” SVG Engine</li>
<li>Added AntialiasColor to perfect antialias effect</li>
<li>Added ImageIndex property editor for SVGIconImage</li>
<li>Added FixedColor and GrayScale to TSVGIconImage component</li>
</ul>
<p>16 Sep 2020: version 2.1.1 (VCL) 2.1.0 (FMX)</p>
<ul>
<li>Fixed issues (#110, #111, #113)</li>
<li>Editing SVG text in editor shows errors without losing content</li>
</ul>
<p>04 Sep 2020: version 2.1.0 (VCL) 1.5.1 (FMX)</p>
<ul>
<li>Added preview for icons when loading svg files</li>
<li>Fixed many issue (#81, #86, #87, #88, #91, #94, #103…)</li>
<li>Refactoring parsing XML to increase performances (using XmlLite)</li>
</ul>
<p>26 Aug 2020: version 2.0 (VCL) 1.5.0 (FMX)</p>
<ul>
<li>Added factory to choose engine</li>
<li>Added interface to use alternative Third-party SVG engine</li>
<li>Redesigned component editor to support Categories for icons</li>
<li>New support for native VirtualImageList (from D10.3)</li>
<li>StoreAsText icons to dfm by default (and unique mode)</li>
<li>Fixed many issues (from #35 to #72)
Take care of TSVGIconVirtualImageList.Collection renamed to SVGIconVirtualImageList.ImageCollection.</li>
</ul>
<p>17 Aug 2020: version 1.9 (VCL+FMX)</p>
<ul>
<li>FixedColor changed from TSVGColor to TColor</li>
<li>Fixed assign FixedColor to icon in component editor</li>
<li>Updated component editor to use TColorBox</li>
</ul>
<p>13 Aug 2020: version 1.8 (VCL+FMX)</p>
<ul>
<li>Complete refactoring for full support of High-DPI</li>
<li>New SVGIconImageCollection component</li>
<li>New SVGIconVirtualImageList component</li>
<li>Redesign of SVGIconImageList component and Component Editor</li>
<li>Demo updated to test multi-monitor with different DPI</li>
<li>Fixed issue #20: Coordinates in double (PaintTo methods)</li>
<li>Fixed issue #25: Transform matrix is wrongly parsed</li>
<li>Fixed issue #26: Error in CalcMartrix</li>
<li>Fixed issue #27: TSVGRadialGradient.ReadIn does not read the gradientTransform matrix</li>
<li>Fixed issue #28: Colors should be reversed in TSVGRadialGradient</li>
<li>Fixed issue #29: Scaling should be based on ViewBox width/height</li>
<li>Fixed issue #31: Empty svg properties cause exceptions</li>
<li>Fixed issue #33: “fill-rule' presentation attribute is not processed</li>
<li>Fixed issue #34: Exception text elements cause exceptions</li>
</ul>
<p>05 Aug 2020: version 1.7 (VCL+FMX)</p>
<ul>
<li>Added DPIChanged method</li>
<li>Enhanced SVGExplorer</li>
<li>Fixed issue #20: replaced Double with Single</li>
<li>Fixed issue #19 and 18#: Load/SaveToStream inefficient and encoding inconsistency</li>
<li>Fixed issue #17: Wrong conversion from pt to px</li>
<li>Fixed issue #14: scaling problem</li>
<li>Fixed issue #11: Incompatible with Drag-Drop of TImageList</li>
<li>Fixed issue #6: Rendering of some SVG images is incorrect</li>
</ul>
<p>15 July 2020: version 1.6 (VCL+FMX)</p>
<ul>
<li>Fixed rendering on TButton! (VCL)</li>
<li>Fixed “Apply” into ImageEditor (VCL)</li>
<li>Added reformat XML to ImageEditor (VCL)</li>
<li>Added utility to explore icons into disk/folder (SVGExplorer)</li>
<li>Fixed inherited color drawing (SVG)</li>
<li>Fixed storing properties into dfm in binary mode (VCL)</li>
<li>Fixed storing for some properties (don't store default values)</li>
</ul>
<p>13 June 2020: versione 1.5 (VCL+FMX)</p>
<ul>
<li>Added support for DisabledGrayScale and DisabledOpacity as in VirtualImageList</li>
<li>Fixed drawing disabled icons also with VCLStyles active</li>
</ul>
<p>09 June 2020: versione 1.4 (VCL+FMX)</p>
<ul>
<li>Added GrayScale and FixedColor to ImageList for every Icons</li>
<li>Added GrayScale and FixedColor for single Icon</li>
<li>Added some complex svg demo images</li>
<li>Updated demos</li>
</ul>
<p>06 June 2020: version 1.3 (VCL+FMX)</p>
<ul>
<li>Added property editor for TSVGIconImage.SVGText and TSVGIconItem.SVGText</li>
<li>Fixed some drawing problems with transform attribute</li>
<li>Fixed rescaling icons when monitor DPI changes</li>
</ul>
<p>28 May 2020: version 1.2 (VCL+FMX)</p>
<ul>
<li>Complete support of Delphi 10.4</li>
<li>Added support for other Delphi versions (VCL): DXE6, DXE8, D10.1</li>
<li>Added position memory of component editor</li>
<li>Fixed Issue: Icon Editor not keeping added icons</li>
<li>Fixed Issue: SVG with exponent notation does not parse correctly and affects image display</li>
</ul>
<p>25 May 2020: version 1.1 (VCL+FMX)</p>
<ul>
<li>Added the component TSVGIconImageListFMX with advanced component editor.</li>
<li>Added the component TSVGIconImageFMX to show SVG into a TImage.</li>
<li>Demos to show how they works.</li>
<li>Very high performance for building hundreds of icons.</li>
</ul>
<p>24 May 2020: first version 1.0 (VCL)</p>
<ul>
<li>Added the component TSVGIconImageList with advanced component editor.</li>
<li>Added the component TSVGIconImage to show SVG into a TImage.</li>
<li>Demos to show how they works.</li>
<li>Very high performance for building hundreds of icons.</li>
<li>Support from Delphi 10.2 to 10.4 Sydney (other Delphi versions coming soon)</li>
</ul>
<h3>THANKS TO</h3>
<p>These components uses the followin libraries:</p>
<ul>
<li><p>Image32 library by <a href="https://angusj.com/image32/Docs/_Body.htm">Angus Johnson</a></p>
<p>These files are included in the Image32/Source and Image32/source/Image32_SVG folders</p>
<p>Copyright <a href="https://www.boost.org/LICENSE_1_0.txt">Boost Software License Version 1</a></p>
</li>
<li><p>Skia4Delphi Library by <a href="https://skia4delphi.org/">the autohors</a></p>
<p>These files are included in the Skia4Delphi/Source folder</p>
<p>Copyright <a href="https://github.com/skia4delphi/skia4delphi?tab=MIT-1-ov-file">MIT-License</a></p>
</li>
</ul>
<p>Many thanks to <strong>Vincent Parrett</strong> and <strong>Kiriakos Vlahos</strong> for their great contibution.</p>