El formato de archivo ICO es un formato de archivo de imagen para iconos de computadora en Microsoft Windows . Los archivos ICO contienen una o más imágenes pequeñas en varios tamaños y profundidades de color , de modo que se pueden escalar adecuadamente. En Windows, todos los ejecutables que muestran un icono al usuario, en el escritorio, en el menú Inicio o en el Explorador de Windows, deben llevar el icono en formato ICO.
Extensión de nombre de archivo | .ico |
---|---|
Tipo de medio de Internet | image/x-icon [1] (pero ver más abajo ) |
Identificador de tipo uniforme (UTI) | com.microsoft.ico |
Desarrollado por | Microsoft |
Tipo de formato | Formato de archivo de gráficos para iconos de computadora |
Contenedor para | BMP y PNG |
Extendido a | CANALLA |
Extensión de nombre de archivo | .canalla |
---|---|
Tipo de medio de Internet | imagen / vnd.microsoft.icon |
Identificador de tipo uniforme (UTI) | com.microsoft.cur |
Desarrollado por | Microsoft |
Tipo de formato | Formato de archivo de gráficos para cursores de mouse |
Contenedor para | BMP |
Extendido desde | ICO |
El formato de archivo CUR es un formato de archivo de imagen casi idéntico para cursores no animados en Microsoft Windows. Las únicas diferencias entre estos dos formatos de archivo son los bytes utilizados para identificarlos y la adición de un punto de acceso en el encabezado del formato CUR; el punto de acceso se define como el desplazamiento de píxeles (en coordenadas x, y) desde la esquina superior izquierda de la imagen del cursor donde el usuario está apuntando el mouse.
Historia
Los iconos introducidos en Windows 1.0 tenían un tamaño de 32 × 32 píxeles y eran monocromáticos. [2] La compatibilidad con 16 colores se introdujo en Windows 3.0 . [ cita requerida ]
Win32 introdujo soporte para almacenar imágenes de iconos de hasta 16,7 millones de colores (TrueColor) y hasta 256x256 píxeles en dimensiones. [3] Windows 95 también introdujo un nuevo motor de mapa de bits independiente del dispositivo (DIB). [4] Sin embargo, 256 colores era la profundidad de color de icono predeterminada en Windows 95. Era posible habilitar 65535 iconos de color (Highcolor) modificando el valor de BPP del icono de Shell en el registro [3] [5] o comprando Microsoft Plus ! para Windows 95. El valor de Tamaño de icono de Shell permite usar iconos más grandes en lugar de iconos de 32 × 32 y el valor de Tamaño de icono pequeño de Shell permite usar tamaños personalizados en lugar de iconos de 16 × 16. [3] Por lo tanto, un solo archivo de icono podría almacenar imágenes de cualquier tamaño, desde 1 × 1 píxel hasta 256 × 256 píxeles (incluidos los tamaños que no son cuadrados) con 2 (rara vez se usa), 16, 256, 65535 o 16.7 millones de colores. ; pero el shell no podía mostrar iconos de gran tamaño. El área de notificación de la barra de tareas de Windows estaba limitada a 16 iconos de colores de forma predeterminada hasta Windows Me, cuando se actualizó para admitir iconos de colores intensos.
Windows XP agregó soporte para imágenes de iconos en color de 32 bits (16,7 millones de colores más transparencia de canal alfa), lo que permite dibujar áreas semitransparentes como sombras , suavizado y efectos de vidrio en un icono. Windows XP, por defecto, emplea iconos de 48 × 48 píxeles en el Explorador de Windows . Se puede forzar a Windows XP a usar íconos tan grandes como 256 × 256 modificando el valor del tamaño del icono de Shell , pero esto haría que todos los íconos de 32 × 32 en todo el shell se escalaran. [3] Microsoft solo recomendó tamaños de icono de hasta 48 × 48 píxeles para Windows XP. [6] Windows XP puede reducir la escala de iconos de 256 × 256 y más grandes si no hay disponible un tamaño de imagen más cercano. [3]
Windows Vista agregó una vista de iconos de 256 × 256 píxeles al Explorador de Windows, así como soporte para el formato PNG comprimido . Aunque no se requiere compresión, Microsoft recomienda que todos los iconos de 256 × 256 de los archivos ICO se almacenen en formato PNG para reducir el tamaño total del archivo. [7] El Explorador de Windows Vista admite el escalado uniforme de iconos a tamaños no estándar que se procesan sobre la marcha, incluso si no hay una imagen para ese tamaño en el archivo de iconos. El shell de Windows Vista agrega un control deslizante para "acercar y alejar" los tamaños de los íconos. Para los usuarios que utilizan resoluciones más altas y modos de DPI altos, se recomiendan formatos de iconos más grandes (como 256 × 256). [7]
Tipo de Mimica
Mientras que la IANA -registered tipo MIME para los archivos ICO es image/vnd.microsoft.icon
, [8] que se presentó a la IANA en 2003 por un tercero y no es reconocida por el software de Microsoft, que utiliza image/x-icon
en su lugar. [9] tipos erróneas image/ico
, image/icon
, text/ico
y application/ico
también se han visto en uso. [8]
Estructura de recursos de iconos
Un archivo ICO o CUR se compone de una estructura ICONDIR ("directorio de iconos"), que contiene una estructura ICONDIRENTRY para cada imagen del archivo, seguida de un bloque contiguo de todos los datos de mapa de bits de la imagen (que pueden estar en formato BMP de Windows , excluyendo la estructura BITMAPFILEHEADER, o en formato PNG , almacenado en su totalidad). [3]
Las imágenes con menos de 32 bits de profundidad de color siguen un formato particular: la imagen se codifica como una sola imagen que consta de una máscara de color (la "máscara XOR") junto con una máscara de opacidad (la "máscara Y"). [6] [ verificación fallida ] La máscara XOR debe preceder a la máscara AND dentro de los datos del mapa de bits; si la imagen se almacena en orden ascendente (que es muy probable), la máscara XOR se dibujará debajo de la máscara AND. La máscara Y es de 1 bit por píxel, independientemente de la profundidad de color especificada por el encabezado BMP, y especifica qué píxeles son completamente transparentes y cuáles son completamente opacos. La máscara XOR se ajusta a la profundidad de bits especificada en el encabezado BMP y especifica el color numérico o el valor de la paleta para cada píxel. Juntas, la máscara AND y la máscara XOR crean una imagen no transparente que representa una imagen con transparencia de 1 bit; también permiten la inversión del fondo. La altura de la imagen en la estructura ICONDIRENTRY del archivo ICO / CUR toma la de las dimensiones de la imagen deseada (después de que se componen las máscaras), mientras que la altura en el encabezado BMP toma la de las dos imágenes de máscara combinadas (antes de que están compuestas). Por lo tanto, las máscaras deben tener las mismas dimensiones y la altura especificada en el encabezado BMP debe ser exactamente el doble de la altura especificada en la estructura ICONDIRENTRY. [ cita requerida ]
Las imágenes de 32 bits (incluidas las imágenes BMP en formato BITMAPINFOHEADER de 32 bits [Notas 1] ) son específicamente una imagen de 24 bits con la adición de un canal de 8 bits para la composición alfa . Por lo tanto, en imágenes de 32 bits, la máscara AND no es necesaria, pero se recomienda su consideración. Windows XP y versiones posteriores utilizarán una imagen de 32 bits en un modo de color inferior al verdadero mediante la construcción de una máscara Y basada en el canal alfa (si uno no reside con la imagen ya) si no se proporciona una versión de 24 bits de la imagen en el archivo ICO / CUR. Sin embargo, las versiones anteriores de Windows interpretan todos los píxeles con una opacidad del 100% a menos que se proporcione una máscara Y con la imagen. El suministro de una máscara Y personalizada también permitirá que el autor del icono ajuste y sugiera. Incluso si no se proporciona la máscara AND, si la imagen está en formato BMP de Windows, el encabezado BMP aún debe especificar una altura duplicada.
Esquema
Todos los valores en los archivos ICO / CUR se representan en orden de bytes little-endian .
Encabezamiento
Compensar# | Tamaño | Propósito |
---|---|---|
0 | 2B | Reservado. Siempre debe ser 0. |
2 | 2B | Especifica el tipo de imagen: 1 para imagen de icono (.ICO), 2 para imagen de cursor (.CUR). Otros valores no son válidos. |
4 | 2B | Especifica el número de imágenes del archivo. |
Estructura del directorio de imágenes
Imagen # 1 | Entrada para la primera imagen |
Imagen # 2 | Entrada para la segunda imagen |
... | |
Imagen #n | Entrada para la última imagen |
Compensar# | Tamaño | Propósito |
---|---|---|
0 | 1B | Especifica el ancho de la imagen en píxeles. Puede ser cualquier número entre 0 y 255. El valor 0 significa que el ancho de la imagen es de 256 píxeles. |
1 | 1B | Especifica la altura de la imagen en píxeles. Puede ser cualquier número entre 0 y 255. El valor 0 significa que la altura de la imagen es de 256 píxeles. |
2 | 1B | Especifica el número de colores en la paleta de colores. Debería ser 0 si la imagen no usa una paleta de colores. |
3 | 1B | Reservado. Debe ser 0. [Notas 2] |
4 | 2B | En formato ICO: especifica los planos de color. Debe ser 0 o 1. [Notas 3] En formato CUR: especifica las coordenadas horizontales del hotspot en número de píxeles desde la izquierda. |
6 | 2B | En formato ICO: especifica bits por píxel. [Notas 4] En formato CUR: especifica las coordenadas verticales del hotspot en número de píxeles desde la parte superior. |
8 | 4B | Especifica el tamaño de los datos de la imagen en bytes. |
12 | 4B | Especifica el desplazamiento de los datos BMP o PNG desde el principio del archivo ICO / CUR |
Datos de imagen referenciados
Todos los datos de imagen a los que hacen referencia las entradas en el directorio de imágenes proceden directamente después del directorio de imágenes. Es una práctica habitual almacenarlos en el mismo orden definido en el directorio de imágenes.
Recuerde que si una imagen está almacenada en formato BMP, debe excluir la estructura inicial BITMAPFILEHEADER, mientras que si está almacenada en formato PNG, debe ser almacenada en su totalidad.
Tenga en cuenta que la altura de la imagen BMP debe ser el doble de la altura declarada en el directorio de imágenes. La segunda mitad del mapa de bits debe ser una máscara Y para los píxeles de pantalla existentes, con los píxeles de salida dados por la fórmula Salida = (Máscara Y existente) Imagen XOR. Configure la máscara en cero en todas partes para una sobrescritura limpia.
Formato PNG
La capacidad de leer imágenes PNG de imágenes en formato ICO y CUR se introdujo en Windows Vista . [7] Una imagen PNG se puede almacenar en la imagen de la misma manera que se hace para una imagen de formato BMP de Windows estándar, con la excepción de que la imagen PNG debe almacenarse en su totalidad, con su encabezado de archivo.
Biblioteca de iconos
Una biblioteca de iconos es una forma de empaquetar iconos de Windows. Por lo general, es un archivo binario ejecutable nuevo de 16 bits o un ejecutable portátil de 32 bits que tiene la extensión .ICL y los recursos de íconos son los íconos empaquetados. Windows Vista y las versiones posteriores no admiten la visualización de iconos de archivos de 16 bits ( nuevo ejecutable ). [10]
Ver también
- Formato de imagen de icono de Apple
- Formato de archivo BMP
- Icono de computadora
- Favicon
- Lista de software de iconos
Notas
- ^ El formato de mapa de bits clásico BITMAPINFOHEADER admite el almacenamiento de imágenes con 32 bits por píxel. Cuando se guarda como un archivo .BMP independiente, "no se utiliza el byte alto de cada [píxel]". Sin embargo, cuando estos mismos datos se almacenan dentro de un archivo ICO o CUR, Windows XP (la primera versión de Windows que admite archivos ICO / CUR con más de 1 bit de transparencia) y superiores interpretan este byte como un valor alfa.
- ^ Aunque la documentación técnica de Microsoft indica que este valor debe ser cero, el codificador de iconos integrado en .NET (System.Drawing.Icon.Save) establece este valor en 255. Parece que el sistema operativo ignora este valor por completo.
- ^ El sistema operativo trata de forma equivalente la configuración de los planos de color en 0 o 1, pero si los planos de color se establecen en un valor superior a 1, este valor debe multiplicarse por los bits por píxel para determinar la profundidad de color final de la imagen. Se desconoce si las distintas versiones del sistema operativo Windows son resistentes a diferentes valores de plano de color.
- ^ Los bits por píxel pueden establecerse en cero, pero pueden inferirse de los demás datos; específicamente, si el mapa de bits no está comprimido en PNG, los bits por píxel se pueden calcular en función de la longitud de los datos del mapa de bits en relación con el tamaño de la imagen. Si el mapa de bits está comprimido en PNG, los bits por píxel se almacenan dentro de los datos PNG. Se desconoce si las distintas versiones del sistema operativo Windows contienen lógica para inferir la profundidad de bits para todas las posibilidades si este valor se establece en cero.
Referencias
- ^ "Estándar de olfateo MIME" . WHATWG. 2014-01-17. Archivado desde el original el 27 de marzo de 2014 . Consultado el 18 de abril de 2014 .
- ^ Fekete, Gyorgy (11 de marzo de 2009). "Diseño de la interfaz del sistema operativo entre 1981-2009" . Depósito de diseño web . Consultado el 6 de junio de 2011 .
- ^ a b c d e f Hornick, John (29 de septiembre de 1995). "Iconos" . Artículos técnicos de la interfaz de usuario de Windows ( MSDN ) . Microsoft Corporation . Consultado el 5 de junio de 2011 .
- ^ "Componentes de la arquitectura de Windows 95" . Microsoft TechNet . Microsoft Corporation . Consultado el 6 de junio de 2011 .
- ^ "Icono de Shell BPP" . Referencia del registro de Windows 2000 (Microsoft TechNet) . Microsoft Corporation . Consultado el 6 de junio de 2011 .
- ^ a b "Creación de iconos de Windows XP" . Artículos técnicos de Windows XP (MSDN) . Corporación Microsoft. Julio de 2001 . Consultado el 5 de junio de 2011 .
- ^ a b c "Iconos" . La evolución del formato de archivo ICO, parte 4: imágenes PNG . Raymond Chen - MSFT . Consultado el 22 de octubre de 2010 .
- ^ a b Butcher, Simon (3 de septiembre de 2003). "imagen / vnd.microsoft.icon" . Consultado el 3 de enero de 2014 .
- ^ Lawrence, Eric (11 de febrero de 2011). "Lista de cambios menores de IE9 RC" . IEInternals . Blogs de MSDN . Consultado el 20 de agosto de 2016 . Vea el segundo comentario.
- ^ Chen, Raymond (mayo de 2008). "Confidencial de Windows: los iconos de 16 bits están tan pasados de moda" . Revista TechNet . Consultado el 1 de julio de 2011 .
enlaces externos
- Habilitar iconos de colores intensos en Windows 95 y versiones posteriores
- Mejore las GUI de Java con iconos de Windows
- Pautas de desarrollo de iconos para iconos de Windows Vista
- Iconos (artículo técnico de Microsoft de 1995)
- La evolución del formato de archivo ICO ( Parte 1 , Parte 2 , Parte 3 , Parte 4 )