Svgiconimagelista
Tres motores para representar SVG (Delphi Image32, Skia4Delphi, Direct2D Wrapper) y cuatro componentes para simplificar el uso de imágenes SVG (cambiar el tamaño, fija, color, escala de grises ...)
Versión oficial real 4.3.0 (VCL+FMX)
| Componente | Descripción |
|---|
 | TSVGICONIMageCollection es una colección de imágenes SVG para que Delphi proporcione una lista centralizada de imágenes para SVGiConvirtualImagelists (solo para VCL) |
 | TSVGiConvirtualImageList es una imagen "virtual" especial para Delphi vinculada a una SVGiConiMageCollection (solo para VCL) para simplificar el uso de iconos SVG (cambiar el tamaño, opacidad, escala de grises y más ...) |
 | TSVGiConImage es un componente de imagen extendido para Delphi (VCL+FMX) para mostrar cualquier imagen SVG directamente o incluida en una SVGiconimagelista con toda la funcionalidad (estiramiento, opacidad, escala de grises y más ...) |
 | TSVGiConiMagelist es una imagen extendida para Delphi (VCL+FMX) con una colección de imágenes SVG incrustada. ¡Use este componente para simplificar el reemplazo de ImageList para aplicaciones de Delphi más antiguas y obtener una escala automática de iconos! |
¡Ahora puede buscar y descargar íconos directamente desde la web!
Desde la versión 4.3, un servicio integrado ahora está disponible en el editor de componentes para descargar iconos SVG desde la web, a través de la API proporcionada por Iconify.Design.
Ahora puede seleccionar "Agregar de Web" en el editor de componentes: un nuevo formulario para buscar y descargar desde la web está disponible para plataformas VCL y FMX.

Lea la página Wiki para comprender cómo descargar fácilmente los iconos SVG desde la web e incluirlos en el SVGiConiMagelist o SVGiConiMageCollection.
Aviso
De la versión 4.0, TSVGiConvirtualImagelist hereda de TVirtualImagelist (usando Delphi 10.3 a lo último). Para versiones anteriores de Delphi, tsvgiconvirtualiMagelist hereda de TSVGiConiMagelistbase .
Una diferencia importante es que una TVirtualImageList puede usar y crear solo un subconjunto de las imágenes en la colección.
Aunque, el TVirtualImagelist estándar no tiene las propiedades fijas de Color, GrayScale, ApplyTorootonly y Opacity, estas propiedades existen en el TSVGiConiMageCollection y se reflejarían en la TVirtualImageL de vinculación, pero si cambia esas propiedades en el nivel de recolección, ¡todos los cambios vinculados a la virtualista vinculada!
Por estas razones, ahora tsvgiconvirtualiMageList también ha fijado las propiedades de la escala de grises, appliedTooTOnly y la opacidad, por lo que puede configurar esas propiedades solo a nivel VirtualImageList, y puede compartir el mismo TSVGiConiMageCollection de muchos VirtualImagelist con diferentes popertias, como puede ver en el nuevo SvgicvirtvirtualvirtualMageMagageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageMageL.
Por esta razón, si está utilizando esos componentes de Delphi 10.3, la combinación recomendada debe ser TSVGiConiMageCollection + TSVGiConvirtualImagelist .
No olvide también la importancia de PreserveItems cuando tiene una gran imagen con muchas acciones vinculadas. Sin configurar esta propiedad en "Verdadero", cada vez que agrega o elimina un icono en la colección, debe verificar y cambiar el ImageIndex de todas las acciones.
Otra característica disponible de la versión Delphi 10.4 es que TSVGiConiMageCollection hereda de TCustomIMageCollection, por lo que también puede usarlo con el componente TVirtualImage y colocar los iconos SVG en el componente TControllist, como se explica aquí ...
¡Elija su motor SVG preferido!
Hay tres implementación:
Native Delphi Image32 (predeterminado), usa la biblioteca Image32 de Angus Johnson
Usando la biblioteca Skia4Delphi , una API de gráficos 2D multiplataforma basada en la biblioteca de gráficos Skia de Google
Un envoltorio para la implementación nativa de Windows Direct2D
Puedes leer más detalles aquí.
Comparación de rendimiento
Esta tabla muestra el rendimiento de los tres motores de representación probados con SVGEXplorer, utilizando una cantidad significativa de iconos de diferentes conjuntos, renderizado a 128x128 píxeles.
| Contar | Conjunto de iconos | Imagen32 | D2D | Skia4delphi |
|---|
| 997 | Asombroso | 1265 ms | 1453 ms | 1172 ms |
| 654 | Papirus | 2750 ms (1) | 937 ms | 1266ms (1) |
| 5366 | Diseño de material | 11015ms | 12001ms | 10688ms |
Como puede ver, los tres motores funcionan de manera diferente dependiendo de los íconos y su complejidad.
(1) Observe que Image32 y Skia4delphi son los únicos motores capaces de hacer un efecto desenfoque (que siempre es lento para calcular): esta es la razón del rendimiento "lento" para representar íconos de papirus que contiene un efecto desenfoque.
Disponible de Delphi XE3 a Delphi 12 (plataformas VCL y FMX)

Enlaces relacionados: embarcadero.com - learndelphi.org
Imagen de muestra de la versión VCL

Muestra de imagen de la versión FMX (Windows)

Imágenes de muestra del editor VCL SVGText-Property (VCL y FMX)


Utilidades
La demostración de SVG Viewer es útil para verificar la calidad de representación de los motores disponibles.
La utilidad SVG Icon Explorer es útil para explorar y ver previsualizar sus colecciones de imágenes SVG.
Puede usar SVG Shell Extensions si desea ver sus iconos directamente en Windows Explorer o desea editarlos usando un poderoso editor de texto SVG .
DOCUMENTACIÓN
Siga la guía en la sección Wiki para saber cómo usar esos componentes para modernizar sus aplicaciones Delphi VCL o FMX Windows escalables, coloreadas y hermosas con pocas líneas de código.
Otra biblioteca similar
Un proyecto similar realizado por Ethea para las fuentes de iconos: https://github.com/etheadev/iconfontsimagelist
Notas de lanzamiento
26 de noviembre de 2024: Versión 4.3.0 (VCL+FMX)
- Actualizado a Image32 4.6 lanzado el 26 de noviembre de 2024 para solucionar el texto de dibujo de problemas dentro de SVG
- Espacio de nombres agregado a todos los usos
- Paquete SVGiConimagelistrestClient agregado
- Nueva opción en el editor de componentes para seleccionar iconos de Web (VCL y FMX)
- Demostraciones actualizadas
17 de octubre de 2024: Versión 4.2.1 (VCL+FMX)
- Actualizado a Image32 4.6 lanzado el 16 de octubre de 2024 para solucionar algún problema de dibujo
12 de octubre de 2024: versión 4.2.0 (VCL+FMX)
- Actualizado a Image32 4.6 lanzado el 12 de octubre de 2024 para solucionar algún problema de dibujo
- Información de componentes agregados en la pantalla Acerca y salpicaduras
14 de septiembre de 2024: Versión 4.1.9 (VCL+FMX)
- Alineado con la versión Image32 4.5 del 14 de septiembre de 2024
- Error de rango fijo Renderizando algunos iconos (motor Image32)
- Cambiar el nombre del icono en el editor de imágenes de imágenes Firemonkey
- Paquetes Aggiornamento Delphi 12.2
27 de agosto de 2024: Versión 4.1.8 (VCL+FMX)
- Alineado con Image32 4.5 Versión del 18 de agosto de 2024
- Representación fija con opacidad para los motores Skia4delphi y D2D
13 de agosto de 2024: Versión 4.1.7 (VCL+FMX)
- Paquetes actualizados para la compilación con Skia4Delphi (definido por SVGiConiMagelist.InC)
- Usos fijos para la unidad de Skia
- Alineado con Image32 4.5 Versión del 11 de agosto de 2024
18 de julio de 2024: Versión 4.1.6 (VCL+FMX)
- Alineado con Image32 4.5 Versión del 17 de julio de 2024
- Color fijo de iconos en Android
- Se agregó definir para usar el antiguo diálogo OpenPicture en el editor de componentes.
22 de mayo de 2024: Versión 4.1.5 (VCL+FMX)
- Fijo tsvgiconimagelistbase.
- Registro fijo de tsvgiconiMageCollection para proyectos FMX
- Alineado con la versión Image32 del 14 de mayo de 2024
05 de mayo de 2024: Versión 4.1.4 (VCL+FMX)
- Alineado con la última imagen32 ver. 4.4
19 de abril de 2024: Versión 4.1.3 (VCL+FMX)
- Alineado con la última imagen32
- Compilación fija con macOSX
- Soporte agregado para Delphi 12.1
08 de enero de 2024: Versión 4.1.2 (VCL+FMX)
- Alineado con la última imagen32
- Se agregó Copiar SVG al portapapeles en el cuadro de diálogo "Exportar a PNG"
- Copyrights actualizados
09 de noviembre de 2023: Versión 4.1.1 (VCL+FMX)
- Alineado con Skia4delphi 6.0.0
- Componentes FMX agregados a toda la plataforma
- Demos fijos para Delphi 12
- Opción SVGDISABLEENEDENENHINT agregada
03 septiembre de 2023: versión 4.1.0 (VCL+FMX)
- Biblioteca IMAGE32 alineada lanzada el 03/03/2023
- Demo fijo (usos "obsoletos" de SVGColor)
- Soporte agregado para Delphi 12.1
24 de agosto de 2023: versión 4.0.0 (VCL+FMX)
- Eliminado el viejo motor "nativo" TSVG
- Actualizado a Skia4Delphi Ver. 6.0.0
- TSVGIConVirtualImagelist hereda de TVirtualImagelist (de D10.3 a la versión real).
- Se agregó svgiconvirtualiMageListDemo para probar múltiples tsvgiconvirtualImagelist en la misma forma
- Soporte agregado para Delphi 12
28 de febrero de 2023: versión 3.9.6 (VCL+FMX)
- Actualizado a Image32 Ver. 4.4 (30 de enero de 2023)
- Actualizado a Skia4Delphi Ver. 4.1.1 (26 de febrero de 2023)
13 de enero de 2023: Versión 3.9.5 (VCL+FMX)
- Copyright actualizado 2023
- Actualizado a Image32 Ver. 4.3 (27 de septiembre de 2022)
- Actualizado a Skia4Delphi Ver. 4.0.2
23 de octubre de 2022: Versión 3.9.4 (VCL+FMX)
- Editor de componentes FMX: selección cambiada para color fijo
- Actualizado a Image32 Ver. 4.3 (27 de septiembre de 2022)
15 de septiembre de 2022: Versión 3.9.3 (VCL+FMX)
- Los estilos W11 eliminados de la demostración (disponible en Delphi solo por Get-It)
- Paquetes D11 actualizados a Delphi 11.2
28 de agosto de 2022: Versión 3.9.2 (VCL+FMX)
- Corregido #240 tsvggraphic.Assign
- Actualizado a Image32 Ver. 4.2 (28 de julio de 2022)
- Actualizado a Skia4Delphi 3.4.1 Biblioteca
- Se corrigió la alineación #241 de los elementos de origen y destino (FMX)
21 de junio de 2022: Versión 3.9.1 (VCL+FMX)
- Soporte agregado para otras versiones de Delphi (VCL): D10 Seattle
08 de mayo de 2022: Versión 3.8.3 (VCL+FMX)
- Actualizado a Skia4Delphi 3.4.0 Biblioteca
- Ejemplo de svgexplorer movido en la carpeta "demo"
10 de abril de 2022: Versión 3.8.2 (VCL+FMX)
- Actualizado a Skia4Delphi 3.3.1 Llibrary
- Actualizado a Image32 4.11 Biblioteca
29 de marzo de 2022: Versión 3.8.1 (VCL+FMX)
- Relación de aspecto fija para el motor Skia
- SVGViewer actualizado
- Demostraciones actualizadas
- Alineación a la última versión de Skia4Delphi
17 de marzo de 2022: Versión 3.8.0 (VCL+FMX)
- Soporte para Delphi 11.1
- Sufijo de biblioteca actualizado para Delphi 10.4 y 11 a (Auto)
09 de marzo de 2022: Versión 3.7.0 (VCL+FMX)
- Soporte para Skia4Delphi 3.2.0 completado
- Soporte eliminado para el motor de El Cairo
- Representación fija con Image32
28 de febrero de 2022: Versión 3.6.0 (VCL + FMX)
- Soporte para Skia4Delphi también en plataformas FMX
26 de febrero de 2022: versión 3.5.2 (VCL+FMX)
- Representación fija con FMX-Image32
23 de febrero de 2022: Versión 3.5.1 (VCL+FMX)
- Biblioteca actualizada Image32 a la versión 4.1.0
- Soporte actualizado a Skia4Delphi 3.1.0
19 de febrero de 2022: versión 3.5.0 (VCL+FMX)
- Biblioteca actualizada Image32 a 4.0.2 versión
- Soporte actualizado a Skia4Delphi 3.0.3
- Editor de svgtext fijo
- Se corrigió algunas representaciones Skia4delphi SVG
14 de febrero de 2022: versión 3.4.0 (VCL+FMX)
- Biblioteca actualizada Image32 a 4.0.1 versión
- Se agregó soporte a Skia4Delphi 3.0
- Se corrigió algún problema de dibujo de imagen32
13 de enero de 2022: Versión 3.3.0 (VCL+FMX)
- Biblioteca de Image32 actualizada a la versión 4.0.0
- Se agregó un conjunto de Cards SVG Ejemplos SVG
- Se corrigió el problema de dibujo de la imagen32 con "jugar a las cartas"
24 de noviembre de 2021: versión 3.2.0 (VCL+FMX)
- Los editores de componentes usan temas IDE (Light, Dark ...) y estilo
- Componentes fijos disponibles en la paleta cuando se trabaja con plataformas móviles
05 de noviembre de 2021: Versión 3.1.1 (VCL+FMX)
- Se corrigió el problema de dibujo de imagen32 en fmx
- Se agregó exportación a múltiples archivos PNG al editor de componentes
31 de octubre de 2021: Versión 3.1.0 (VCL+FMX)
- Biblioteca actualizada Image32 a la versión 3.4.1
- Se agregó el motor Skia4Delphi (no completo)
28 de agosto de 2021: Versión 3.0.0 (VCL+FMX)
- Paquetes actualizados para Delphi 11
- Actualizado algo de documentación (imágenes y wiki)
24 de agosto de 2021: Versión 2.5.0 (VCL+FMX)
- Alineado con la biblioteca Image32 ver.3.1
22 de julio de 2021: Versión 2.4.0 (VCL+FMX)
- Actualizado y alineado con Image32 Ver.3 Biblioteca
- Paquetes agregados para Delphi 11 Alexandria
18 de julio de 2021: Versión 2.3.1 (VCL+FMX)
- Se corrigieron archivos de renderizado con color definido por 8 dígitos
17 de julio de 2021: Versión 2.3.0 (VCL+FMX)
- Nuevo motor agregado: Biblioteca Image32 de Angus Johnson (VCL+FMX)
- Image32 es ahora el motor Delphi nativo predeterminado
- Soporte agregado para las plataformas Android e iOS (por el motor Image32)
- Se agregó soporte para versiones de Delphi hacia atrás (de XE3)
- Se agregó una demostración para comparar los cuatro motores (SVGViewer)
- Representación fija "centrada" en SVGiConimage para el motor de El Cairo.
- ADVERTENCIA: Cambiado del ancestro del componente TSVGiConImage de tcustomControl a tgraphicControl
18 de abril de 2021: Versión 2.2.6 (VCL+FMX)
- Se agregó una nueva propiedad ApplyFixedColortorootonly
- Se agregó una demostración para el nuevo componente TControllist (solo para D10.4.2)
22 de febrero de 2021: Versión 2.2.5 (VCL+FMX)
- Se agregó la opción de exportación a PNG en el editor de componentes
23 de enero de 2021: Versión 2.2.4 (VCL+FMX)
- Se corrigió #156 estiramiento para svgiconimage
- Se corrigió #157 SVGiConImage obtiene una imagen correcta de VirtualImageList
17 de enero de 2021: Versión 2.2.3 (VCL+FMX)
- Se corrigió #151 problemas antialiasis
- Configuración fija de diferente ancho y altura en el editor
- Vista previa fija del icono con diferentes alturas y ancho en el editor
24 de diciembre de 2020: Versión 2.2.2 (VCL+FMX)
- Propiedad de ancho, altura y zoom adicional para componentes FMX
- Editor de componentes FMX rediseñado
- Editor de componentes VCL fijo
08 de diciembre de 2020: Versión 2.2.1 (VCL+FMX)
- Se agregaron plataformas de 64 bits para paquetes
- Soluciones menores (vacías excepto bloques)
- TSVGICONIMAGE FIJO Color heredado
- Repintado fijo para la versión FMX
23 de septiembre de 2020: Versión 2.2.0 (VCL+FMX)
- Se agregó el motor SVG "El Cairo"
- Se agregó antialiascolor para perfeccionar el efecto antialias
- Editor de propiedades de ImageIndex agregado para SVGiConImage
- Se agregó fixcolor y grayscale al componente TSVGiConimage
16 de septiembre de 2020: Versión 2.1.1 (VCL) 2.1.0 (FMX)
- Problemas solucionados ( #110, #111, #113)
- Editar el texto SVG en el editor muestra errores sin perder contenido
04 sep 2020: versión 2.1.0 (VCL) 1.5.1 (FMX)
- Se agregó una vista previa para los iconos al cargar archivos SVG
- Se solucionó muchos problemas ( #81, #86, #87, #88, #91, #94, #103 ...)
- Refactorizar el análisis XML para aumentar el rendimiento (usando XMLLITE)
26 de agosto de 2020: Versión 2.0 (VCL) 1.5.0 (FMX)
- Se agregó una fábrica para elegir el motor
- Interfaz agregada para usar el motor SVG de terceros alternativo
- Editor de componentes rediseñado para admitir categorías para iconos
- Nuevo soporte para VirtualImagelist nativo (de D10.3)
- Iconos de StoreStext a DFM de forma predeterminada (y modo único)
- Se corrigieron muchos problemas (del #35 al #72) cuidado de tsvgiconvirtualiMagelist. Collection renombrado a svgiconvirtualiMagelist.imageCollection.
17 de agosto de 2020: Versión 1.9 (VCL+FMX)
- FixedColor cambió de tsvgcolor a tcolor
- Fijo asignar fixcolor al icono en el editor de componentes
- Editor de componentes actualizado para usar tcolorbox
13 de agosto de 2020: Versión 1.8 (VCL+FMX)
- Refactorización completa para el apoyo completo de High-DPI
- Nuevo componente de SvGiconiMageCollection
- Nuevo componente SvGiconvirtualImagelist
- Rediseño del componente svgiconimagelista y editor de componentes
- Demostración actualizada para probar múltiples monitor con diferentes DPI
- Problema solucionado #20: Coordenadas en doble (métodos de pintura)
- Problema solucionado #25: Transform Matrix se analiza erróneamente
- Problema correcto #26: Error en CalcMartrix
- Problema solucionado #27: tsvgradialgradient.Readin no lee la matriz GradientTransform
- Problema solucionado #28: los colores deben revertirse en TSVGradialGradient
- Problema correcto #29: la escala debe basarse en el ancho/altura de ViewBox
- Problema correcto #31: las propiedades de SVG vacías causan excepciones
- Problema correcto #33: el atributo de presentación "Fill-Rule 'no se procesa
- Problema correcto #34: Los elementos de texto de excepción causan excepciones
05 de agosto 2020: Versión 1.7 (VCL+FMX)
- Método dpichanged agregado
- Svgexplorer mejorado
- Problema solucionado #20: reemplazado el doble con soltero
- Problema solucionado #19 y 18 #: Load/SaveToStream ineficiente y codificando inconsistencia
- Problema solucionado #17: Conversión incorrecta de PT a PX
- Problema solucionado #14: Problema de escala
- Problema solucionado #11: Incompatible con Drag-Drop of Timagelist
- Problema correcto #6: La representación de algunas imágenes SVG es incorrecta
15 de julio de 2020: Versión 1.6 (VCL+FMX)
- ¡Representación fija en tbutton! (VCL)
- Se corrigió "aplicar" en ImageEditor (VCL)
- Se agregó el XML de Reformat a ImageEditor (VCL)
- Se agregó una utilidad para explorar los iconos en el disco/carpeta (SVGEXPLORER)
- Dibujo de color heredado fijo (SVG)
- Propiedades de almacenamiento fijas en DFM en modo binario (VCL)
- Almacenamiento fijo para algunas propiedades (no almacene los valores predeterminados)
13 de junio de 2020: versión 1.5 (VCL+FMX)
- Se agregó soporte para discapacitados GrayScale y DISPLAYAPATICIÓN como en VirtualImageList
- Iconos de desactivación de dibujo fijo también con Vclstyles activo
09 de junio de 2020: versión 1.4 (VCL+FMX)
- Se agregó a la escala de grises y a FixedColor a Imagelist para cada íconos
- GrayScale agregado y FixedColor para un icono único
- Se agregó algunas imágenes complejas de demostración SVG
- Demostraciones actualizadas
06 de junio de 2020: Versión 1.3 (VCL+FMX)
- Editor de propiedades agregado para tsvgiconimage.svgtext y tsvgiconitem.svgtext
- Se solucionó algunos problemas de dibujo con el atributo de transformación
- Se corrigió iconos de reescalado cuando el monitor de DPI cambia
28 de mayo de 2020: Versión 1.2 (VCL+FMX)
- Soporte completo de Delphi 10.4
- Soporte agregado para otras versiones de Delphi (VCL): DXE6, DXE8, D10.1
- Memoria de posición agregada del editor de componentes
- Problema solucionado: el editor de iconos no mantiene iconos agregados
- Problema solucionado: SVG con notación exponente no analiza correctamente y afecta la pantalla de imagen
25 de mayo de 2020: Versión 1.1 (VCL+FMX)
- Se agregó el componente TSVGICONIMAGELISTFMX con el editor de componentes avanzados.
- Se agregó el componente TSVGICONIMAGEFMX para mostrar SVG en un reloj.
- Demos para mostrar cómo funcionan.
- Muy alto rendimiento para construir cientos de íconos.
24 de mayo de 2020: Primera versión 1.0 (VCL)
- Se agregó el componente TSVGiConImagelist con el editor de componentes avanzados.
- Se agregó el componente TSVGiConImage para mostrar SVG en un tiempo.
- Demos para mostrar cómo funcionan.
- Muy alto rendimiento para construir cientos de íconos.
- Soporte de Delphi 10.2 a 10.4 Sydney (otras versiones de Delphi próximamente)
GRACIAS A
Estos componentes usan las siguientes bibliotecas:
Biblioteca Image32 de Angus Johnson
Estos archivos se incluyen en las carpetas Image32/Source e Image32/Source/Image32_SVG
Copyright Boost Licencia de software Versión 1
Biblioteca Skia4Delphi por los Autohors
Estos archivos están incluidos en la carpeta Skia4Delphi/Source
Copyright MIT-licencia
Muchas gracias a Vincent Parrett y Kiriakos Vlahos por su gran contención.