Svgiconimagelist
Trois moteurs à rendre SVG (Delphi Image32, Skia4Delphi, Wrapper Direct2D) et quatre composants pour simplifier l'utilisation des images SVG (redimensionner, fixe, écran de gris ...)
Version officielle réelle 4.3.0 (VCL + FMX)
| Composant | Description |
|---|
 | TSVGiConImageCollection est la collection d'images SVG pour Delphi pour fournir une liste centralisée d'images pour SVGiConvirtualImagelists (uniquement pour VCL) |
 | TSVGiConVirtualImageList est un immeliste "virtuel" spécial pour Delphi lié à une SVGiConImageCollection (uniquement pour VCL) pour simplifier l'utilisation des icônes SVG (redimensionnement, opacité, niveaux de gris et plus ...) |
 | TSVGiConImage est un composant d'image étendu pour Delphi (VCL + FMX) pour afficher toute image SVG directement ou incluse dans un SVGiConImageList avec toutes les fonctionnalités (étirement, opacité, niveaux de gris et plus ...) |
 | TSVGiConImageList est un immentiste étendu pour Delphi (VCL + FMX) avec une collection d'images SVG intégrée. Utilisez ce composant pour simplifier le remplacement de l'imageliste pour les anciennes applications Delphi et obtenez une échelle automatique des icônes! |
Vous pouvez maintenant rechercher et télécharger des icônes directement sur le Web!
À partir de la version 4.3, un service intégré est désormais disponible dans l'éditeur de composants pour télécharger les icônes SVG à partir du Web, via l'API fournie par iconify.design.
Vous pouvez désormais sélectionner "Ajouter dans le Web" dans l'éditeur de composants: un nouveau formulaire à rechercher et à télécharger à partir du Web est disponible pour les plates-formes VCL et FMX.

Lisez la page Wiki pour comprendre comment télécharger facilement les icônes SVG à partir du Web et les inclure dans le SVGiConImagelist ou SVGiConImageCollection.
Avis important
De la version 4.0, TSVGiConvirtualImagelist hérite de TVirtualImagelist (en utilisant Delphi 10.3 au plus tard). Pour les versions de Delphi précédentes, TSVGiConvirtualImagelist hérite de TSVGiConImagelistBase .
Une différence importante est qu'un TVirtualImagelist peut utiliser et ne créer qu'un sous-ensemble des images dans la collection.
Bien que le TVirtualImagelist standard n'ait pas les propriétés fixecolor, en niveaux de gris, appliqués et opacité, ces propriétés existent à la tsvgiconimagecollection et ils se refléteraient sur le tviirtuallist lié, mais si vous modifiez ces propriétés au niveau de la collection, tous les modifications liées à vertualistaList!
Pour ces raisons, maintenant TSVGiConvirtualImageList a également des propriétés fixe, de gris, appliquetorootly et d'opacité, afin que vous puissiez configurer ces propriétés uniquement au niveau virtualimagelist, et vous pouvez partager les mêmes TSVGiConImageCollection à partir de nombreux virtualilistes avec des poputies.
Pour cette raison, si vous utilisez ces composants de Delphi 10.3, la combinaison recommandée doit être TSVGiConImageCollection + TSVGiConvirtualImagelist .
N'oubliez pas également l'importance des préserveItems lorsque vous avez une grande enveillance avec de nombreuses actions liées. Sans définir cette propriété sur "True", chaque fois que vous ajoutez ou supprimez une icône dans la collection, vous devez vérifier et modifier l'ImageIndex de toutes les actions.
Une autre fonctionnalité disponible dans la version Delphi 10.4 est que TSVGiConImageCollection hérite de TCustomImageCollection, vous pouvez donc également l'utiliser avec le composant TVirtualImage et placer les icônes SVG dans le composant TControlliste, comme expliqué ici ...
Choisissez votre moteur SVG préféré!
Il y a trois implémentations:
Native Delphi Image32 (par défaut), utilise la bibliothèque Image32 par Angus Johnson
Utilisation de la bibliothèque Skia4Delphi , une API graphique 2D multiplateforme basée sur la bibliothèque graphique SKIA de Google
Un emballage à l'implémentation Native Windows Direct2D
Vous pouvez lire plus de détails ici.
Comparaison des performances
Ce tableau montre les performances des trois moteurs de rendu testés avec SVGExplorer, en utilisant une quantité importante d'icônes de différents ensembles, rendus à 128x128 pixels.
| Compter | Ensemble d'icônes | Image32 | D2d | Skia4delphi |
|---|
| 997 | Forêt | 1265 ms | 1453 ms | 1172 ms |
| 654 | Papirus | 2750 ms (1) | 937 ms | 1266 ms (1) |
| 5366 | Conception de matériaux | 11015 ms | 12001 ms | 10688 ms |
Comme vous pouvez le voir, les trois moteurs fonctionnent différemment en fonction des icônes et de leur complexité.
(1) Remarquez que l'image32 et le skia4delphi sont les seuls moteurs capables de rendre l'effet flou (qui est toujours lent à calculer): c'est la raison de performances "lentes" pour rendre les icônes de papirus qui contient un effet flou.
Disponible de Delphi Xe3 à Delphi 12 (plates-formes VCL et FMX)

Liens connexes: Embarcadero.com - Learndelphi.org
Exemple d'image de la version VCL

Exemple d'image de la version FMX (Windows)

Exemples d'images de l'éditeur VCL SVGText-Property (VCL et FMX)


Services publics
La démo de la visionneuse SVG est utile pour vérifier la qualité de rendu des moteurs disponibles.
L'utilitaire d'explorateur d'icônes SVG est utile pour explorer et prévisualiser vos collections d'images SVG.
Vous pouvez utiliser des extensions de shell SVG si vous souhaitez voir vos icônes directement dans Windows Explorer ou si vous souhaitez les modifier à l'aide d'un puissant éditeur de texte SVG .
DOCUMENTATION
Suivez le guide dans la section Wiki pour savoir comment utiliser ces composants pour moderniser vos applications Delphi VCL ou FMX Windows évolutives, colorées et belles avec quelques lignes de code.
Autre bibliothèque similaire
Un projet similaire réalisé par Ethea pour les polices d'icônes: https://github.com/etheadev/iconfontsimagelist
Notes de libération
26 novembre 2024: version 4.3.0 (VCL + FMX)
- Mise à jour vers Image32 4.6 publié le 26 novembre 2024 pour corriger le texte du dessin de problème à l'intérieur de SVG
- Espace de noms ajouté à toutes les utilisations
- Ajout du package SVGiConImageListrestClient
- Nouvelle option dans l'éditeur de composants pour sélectionner les icônes sur le Web (VCL et FMX)
- Démos mis à jour
17 octobre 2024: version 4.2.1 (VCL + FMX)
- Mis à jour vers Image32 4.6 publié le 16 octobre 2024 pour résoudre un problème de dessin
12 octobre 2024: Versione 4.2.0 (VCL + FMX)
- Mis à jour vers Image32 4.6 publié le 12 octobre 2024 pour résoudre un problème de dessin
- Ajout d'informations sur les composants sur et écran de splash
14 septembre 2024: version 4.1.9 (VCL + FMX)
- Aligné sur Image32 4.5 Version du 14 septembre 2024
- Des erreurs de plage fixe rendent certaines icônes (moteur Image32)
- Correction de l'icône de renommée dans FireMonkey Imagelist Editor
- Packages AggiornAmmento Delphi 12.2
27 août 2024: version 4.1.8 (VCL + FMX)
- Aligné sur Image32 4.5 Version du 18 août 2024
- Correction du rendu avec opacité pour les moteurs Skia4Delphi et D2D
13 août 2024: version 4.1.7 (VCL + FMX)
- Packages mis à jour pour la compilation avec Skia4Delphi (défini par SvGiConImageList.inc)
- Usages fixes pour l'unité de skia
- Aligné sur Image32 4.5 Version du 11 août 2024
18 juil 2024: version 4.1.6 (VCL + FMX)
- Aligné sur Image32 4.5 Version du 17 juillet 2024
- Couleur fixe des icônes dans Android
- Ajouter Define pour utiliser l'ancienne boîte de dialogue OpenPicture dans l'éditeur de composants.
22 mai 2024: version 4.1.5 (VCL + FMX)
- TSVGICONIMageListBase.Assign fixe fixe
- Correction d'enregistrement TSVGiConImageCollection pour les projets FMX
- Aligné sur la version Image32 du 14 mai 2024
05 mai 2024: version 4.1.4 (VCL + FMX)
- Aligné sur la dernière image32 ver. 4.4
19 avril 2024: version 4.1.3 (VCL + FMX)
- Aligné sur la dernière image32
- Compilation fixe avec macOsx
- Ajout de la prise en charge de Delphi 12.1
08 janvier 2024: version 4.1.2 (VCL + FMX)
- Aligné sur la dernière image32
- Ajout de copier SVG dans le presse-papiers dans la boîte de dialogue "Exporter vers PNG"
- Copyrights mis à jour
09 novembre 2023: version 4.1.1 (VCL + FMX)
- Aligné sur skia4delphi 6.0.0
- Ajout de composants FMX à toutes les plateformes
- Demos fixes pour Delphi 12
- Ajout de l'option SVGDisableEngineHint
03 septembre 2023: version 4.1.0 (VCL + FMX)
- Bibliothèque Image32 alignée publiée le 03/09/2023
- Demo fixe (Utilisations de SvgColor supprimées "Obsolètes")
- Ajout de la prise en charge de Delphi 12.1
24 août 2023: version 4.0.0 (VCL + FMX)
- Retiré le vieux moteur "natif" TSVG
- Mis à jour vers Skia4Delphi ver. 6.0.0
- TSVGICONVirtualImagelist hérite de TVirtualImagelist (de D10.3 à la version réelle).
- Ajout de SVGiConvirtualImageListDemo pour tester plusieurs tsvgiconvirtualimagelist sous la même forme
- Ajout de la prise en charge de Delphi 12
28 février 2023: version 3.9.6 (VCL + FMX)
- Mise à jour sur image32 ver. 4.4 (30 janvier 2023)
- Mis à jour vers Skia4Delphi ver. 4.1.1 (26 février 2023)
13 janvier 2023: version 3.9.5 (VCL + FMX)
- Copyright 2023 mis à jour
- Mise à jour sur image32 ver. 4.3 (27 septembre 2022)
- Mis à jour vers Skia4Delphi ver. 4.0.2
23 octobre 2022: version 3.9.4 (VCL + FMX)
- Éditeur de composants FMX: Sélection modifiée pour la couleur fixe
- Mise à jour sur image32 ver. 4.3 (27 septembre 2022)
15 septembre 2022: version 3.9.3 (VCL + FMX)
- Supprimé les styles W11 de la démo (disponible à Delphi uniquement par Get-it)
- Packages D11 mis à jour vers Delphi 11.2
28 août 2022: version 3.9.2 (VCL + FMX)
- Correction de # 240 tsvggraphic.assign
- Mise à jour sur image32 ver. 4.2 (28 juillet 2022)
- Mise à jour de la bibliothèque SKIA4Delphi 3.4.1
- Correction de l'alignement n ° 241 des éléments source et de destination (FMX)
21 juin 2022: version 3.9.1 (VCL + FMX)
- Prise en charge ajoutée pour les autres versions Delphi (VCL): D10 Seattle
08 mai 2022: version 3.8.3 (VCL + FMX)
- Mise à jour de la bibliothèque SKIA4Delphi 3.4.0
- Exemple SVGEXPLORER déplacé dans le dossier "Demo"
10 avril 2022: version 3.8.2 (VCL + FMX)
- Mis à jour vers SKIA4Delphi 3.3.1 Llibrary
- Mise à jour vers l'image32 4.11 Library
29 mars 2022: version 3.8.1 (VCL + FMX)
- Ratio d'aspect fixe pour le moteur de skia
- SVGViewer mis à jour
- Démos mises à jour
- Alignement sur la dernière version Skia4Delphi
17 mars 2022: version 3.8.0 (VCL + FMX)
- Prise en charge de Delphi 11.1
- Suffixe de bibliothèque mis à jour pour Delphi 10.4 et 11 à (Auto)
09 mars 2022: version 3.7.0 (VCL + FMX)
- Prise en charge de Skia4Delphi 3.2.0 terminé
- Support supprimé pour le moteur du Caire
- Rendu fixe avec image32
28 février 2022: version 3.6.0 (VCL + FMX)
- Prise en charge de Skia4Delphi également dans les plates-formes FMX
26 février 2022: version 3.5.2 (VCL + FMX)
- Rendu fixe avec FMX-IMAGE32
23 février 2022: version 3.5.1 (VCL + FMX)
- Bibliothèque Image32 mise à jour vers la version 4.1.0
- Prise en charge mise à jour de Skia4Delphi 3.1.0
19 février 2022: version 3.5.0 (VCL + FMX)
- Bibliothèque Image32 mise à jour vers 4.0.2 version
- Prise en charge mise à jour de Skia4Delphi 3.0.3
- Correction de l'éditeur SVGText
- Correction d'un rendu SKIA4Delphi SVG
14 février 2022: version 3.4.0 (VCL + FMX)
- Bibliothèque Image32 mise à jour vers la version 4.0.1
- Ajout d'un support à Skia4Delphi 3.0
- Correction d'un problème de dessin Image32
13 janvier 2022: version 3.3.0 (VCL + FMX)
- Bibliothèque Image32 mise à jour vers la version 4.0.0
- Ajout d'un ensemble de cartes à jouer des exemples SVG
- Correction du problème de dessin de l'image32 avec "Playing Cards"
24 novembre 2021: version 3.2.0 (VCL + FMX)
- Les éditeurs de composants utilisent des thèmes IDE (clair, sombre ...) et Style
- Correction des composants disponibles en palette lorsque vous travaillez avec des plates-formes mobiles
05 novembre 2021: version 3.1.1 (VCL + FMX)
- Problème de dessin Image32 Correction dans FMX
- Ajout de l'exportation vers plusieurs fichiers PNG à l'éditeur de composants
31 octobre 2021: version 3.1.0 (VCL + FMX)
- Bibliothèque Image32 mise à jour vers la version 3.4.1
- Ajout du moteur Skia4Delphi (non complet)
28 août 2021: version 3.0.0 (VCL + FMX)
- Packages mis à jour pour Delphi 11
- Mise à jour de la documentation (images et wiki)
24 août 2021: version 2.5.0 (VCL + FMX)
- Aligné sur la bibliothèque Image32 Ver.3.1
22 juillet 2021: version 2.4.0 (VCL + FMX)
- Mis à jour et aligné sur la bibliothèque Image32 Ver.3
- Ajout de forfaits pour Delphi 11 Alexandrie
18 juil 2021: version 2.3.1 (VCL + FMX)
- Fixe des fichiers de rendu avec couleur définie par 8 chiffres
17 juil 2021: version 2.3.0 (VCL + FMX)
- Ajout d'un nouveau moteur: bibliothèque Image32 par Angus Johnson (VCL + FMX)
- Image32 est maintenant le moteur Delphi natif par défaut
- Ajout de la prise en charge des plates-formes Android et iOS (par moteur Image32)
- Ajout de la prise en charge des versions de Delphi vers l'arrière (à partir de XE3)
- Demo ajouté pour comparer les quatre moteurs (SVGViewer)
- Rendu fixe "centré" dans SVGiConimage pour le moteur du Caire.
- AVERTISSEMENT: Modification de l'ancêtre composant tsvgiConImage de tCustomControl à TgraphicControl
18 avril 2021: version 2.2.6 (VCL + FMX)
- Ajout d'une nouvelle propriété ApplyFixedColOrtorootOnly
- Demo ajouté pour le nouveau composant TControlliste (uniquement pour D10.4.2)
22 février 2021: version 2.2.5 (VCL + FMX)
- Ajout de l'option Exporter vers PNG dans l'éditeur de composants
23 janvier 2021: version 2.2.4 (VCL + FMX)
- Stretch # 156 fixe pour SVGiConImage
- Correction # 157 SVGiConImage obtient une image correcte de VirtualImagelist
17 janvier 2021: version 2.2.3 (VCL + FMX)
- Correction des problèmes antialiasants n ° 151
- Correction des paramètres de largeur et de hauteur différents dans l'éditeur
- Aperçu fixe de l'icône avec une hauteur et une largeur différentes dans l'éditeur
24 décembre 2020: version 2.2.2 (VCL + FMX)
- Ajout de la largeur, de la hauteur et de la propriété du zoom pour les composants FMX
- Éditeur de composants FMX redessiné
- Éditeur de composants VCL fixe
08 décembre 2020: version 2.2.1 (VCL + FMX)
- Ajout de plateformes de 64 bits pour les packages
- Correction mineure (vides sauf les blocs)
- TSVGiConImage fixe couleur héritée
- Repaindre fixe pour la version FMX
23 septembre 2020: version 2.2.0 (VCL + FMX)
- Ajout du moteur SVG "Cairo"
- Ajouté Antialiascolor à un effet antialias parfait
- Ajout de l'éditeur de propriété ImageIndex pour SVGiConImage
- Ajout de la composante fixe fixe et gris à la composante TSVGiConImage
16 septembre 2020: version 2.1.1 (VCL) 2.1.0 (FMX)
- Problèmes fixes (# 110, # 111, # 113)
- Édition de texte SVG dans l'éditeur montre des erreurs sans perdre de contenu
04 Sep 2020: version 2.1.0 (VCL) 1.5.1 (FMX)
- Ajout de l'aperçu pour les icônes lors du chargement des fichiers SVG
- Correction de nombreux problèmes (# 81, # 86, # 87, # 88, # 91, # 94, # 103 ...)
- Refactoring analyser le XML pour augmenter les performances (en utilisant XMllite)
26 août 2020: version 2.0 (VCL) 1.5.0 (FMX)
- Ajout d'usine pour choisir le moteur
- Interface ajoutée pour utiliser un autre moteur SVG tiers
- Éditeur de composants redessiné pour prendre en charge les catégories pour les icônes
- Nouveau support pour VirtualImagelist natif (de D10.3)
- Icônes StoreaStext à DFM par défaut (et mode unique)
- Correction de nombreux problèmes (du # 35 à # 72), prenez soin de tsvgiconvirtualimagelist.Collection renommée SVGiconvirtualImageList.imagecollection.
17 août 2020: version 1.9 (VCL + FMX)
- FixedColor est passé de tsvgcolor à tcolor
- Fix Assign FixedColor à l'icône dans l'éditeur de composants
- Éditeur de composants mis à jour pour utiliser TColorBox
13 août 2020: version 1.8 (VCL + FMX)
- Refactorisation complète pour le soutien complet du DPI élevé
- Nouveau composant SVGiConImageCollection
- Nouveau composant SVGICONVirtualImagelist
- Refonte de la composante et éditeur de composants SVGiConImagelist
- Demo mis à jour pour tester le multi-moniteur avec un DPI différent
- Problème fixe n ° 20: Coordonnées en double (méthodes de peinture)
- Problème fixe n ° 25: la matrice de transformation est mal analysée
- Correction du problème n ° 26: Erreur dans Calcmartrix
- Problème fixe n ° 27: TSVGradialgradient.readin ne lit pas la matrice GradientTransform
- Problème fixe n ° 28: Les couleurs doivent être inversées dans TSVGradialgradient
- Problème fixe n ° 29: La mise à l'échelle doit être basée sur la largeur / hauteur de la boîte de vue
- Problème fixe n ° 31: les propriétés SVG vides provoquent des exceptions
- Problème fixe n ° 33: l'attribut de présentation "Fill-Rule 'n'est pas traité
- Problème fixe n ° 34: Éléments de texte des exceptions provoquent des exceptions
05 août 2020: version 1.7 (VCL + FMX)
- Ajout de la méthode DPICHANGED
- Svgexplorer amélioré
- Correction du problème n ° 20: Remplacé Double par Single
- Problème fixe n ° 19 et 18 #: charge / savetostream inefficace et incohérence de codage
- Correction du problème n ° 17: Mauvaise conversion de PT en PX
- Correction du problème n ° 14: Problème d'échelle
- Problème fixe n ° 11: incompatible avec la traînée de Timagelist
- Problème fixe n ° 6: le rendu de certaines images SVG est incorrect
15 juillet 2020: version 1.6 (VCL + FMX)
- Correction du rendu sur Tbutton! (VCL)
- Correction "Appliquer" dans ImageEditor (VCL)
- Ajout de Reformat XML à ImageEditor (VCL)
- Ajout d'utilité pour explorer les icônes dans le disque / dossier (SVGExplorer)
- Dessin de couleur héréditaire fixe (SVG)
- Correction de propriétés de stockage en DFM en mode binaire (VCL)
- Correction du stockage pour certaines propriétés (ne stockez pas les valeurs par défaut)
13 juin 2020: Versione 1.5 (VCL + FMX)
- Ajout de la prise en charge de Disabledgrayscale et DisabledOpacity comme dans VirtualImagelist
- Correction d'icônes désactivées de dessin également avec VCLStyles actif
09 juin 2020: Versione 1.4 (VCL + FMX)
- Ajout de niveaux de gris et decolor fixe à l'imageliste pour toutes les icônes
- En niveaux de gris et encolor fixes pour une seule icône
- Ajout de quelques images de démonstration SVG complexes
- Démos mises à jour
06 juin 2020: version 1.3 (VCL + FMX)
- Ajout de l'éditeur de propriétés pour tsvgiconimage.svgtext et tsvgiconitem.svgtext
- Correction de quelques problèmes de dessin avec l'attribut de transformation
- Icônes de rediffusion fixe lorsque le surveillant modifie les modifications du DPI
28 mai 2020: version 1.2 (VCL + FMX)
- Support complet de Delphi 10.4
- Ajout de la prise en charge des autres versions Delphi (VCL): DXE6, DXE8, D10.1
- Mémoire de position ajoutée de l'éditeur de composants
- Problème fixe: l'éditeur d'icônes ne conserve pas les icônes ajoutées
- Problème fixe: SVG avec la notation d'exposés ne l'analyse pas correctement et affecte l'affichage de l'image
25 mai 2020: version 1.1 (VCL + FMX)
- Ajout du composant TSVGiConImageListFMX avec l'éditeur de composant avancé.
- Ajout du composant TSVGiConImageFMX pour afficher SVG dans un Timage.
- Démos pour montrer comment ils fonctionnent.
- Très haute performance pour construire des centaines d'icônes.
24 mai 2020: Première version 1.0 (VCL)
- Ajout du composant TSVGiConImageList avec un éditeur de composants avancé.
- Ajout du composant TSVGiConImage pour montrer SVG dans un Timage.
- Démos pour montrer comment ils fonctionnent.
- Très haute performance pour construire des centaines d'icônes.
- Support de Delphi 10.2 à 10.4 Sydney (autres versions de Delphi à venir bientôt)
GRÂCE À
Ces composants utilisent les bibliothèques suivantes:
Bibliothèque Image32 par Angus Johnson
Ces fichiers sont inclus dans les dossiers Image32 / source et image32 / source / image32_svg
Copyright boost licence du logiciel Version 1
Bibliothèque Skia4Delphi par les autohors
Ces fichiers sont inclus dans le dossier Skia4Delphi / Source
Copyright MIT-License
Un grand merci à Vincent Parrett et Kiriakos Vlahos pour leur grande contribution.