stringtranslate.com

ICO (formato de archivo)

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 múltiples tamaños y profundidades de color , de modo que se puedan escalar adecuadamente. En Windows, todos los ejecutables que muestran un ícono al usuario, en el escritorio, en el menú Inicio o en el Explorador de archivos, deben llevar el ícono en formato 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 hacia donde el usuario realmente apunta con el mouse.

El formato de archivo ANI se utiliza para cursores animados de Windows .

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 necesaria ]

Win32 introdujo soporte para almacenar imágenes de iconos de hasta 16,7 millones de colores (TrueColor) y hasta 256 × 256 píxeles de 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 iconos de 65535 colores (Highcolor) modificando el valor BPP del icono Shell en el registro [3] [5] o comprando Microsoft Plus ! para Windows 95. El valor Tamaño del icono del Shell permite utilizar iconos más grandes en lugar de iconos de 32×32 y el valor Tamaño del icono pequeño del Shell permite utilizar tamaños personalizados en lugar de iconos de 16×16. [3] Por lo tanto, un solo archivo de ícono podría almacenar imágenes de cualquier tamaño desde 1 × 1 píxel hasta 256 × 256 píxeles (incluidos los tamaños no cuadrados) con 2 (rara vez usado), 16, 256, 65535 o 16,7 millones de colores. ; pero el shell no podía mostrar iconos de tamaño muy grande. 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 altos.

Windows XP agregó soporte para imágenes de iconos de color de 32 bits (16,7 millones de colores más transparencia de canal alfa de 8 bits ), permitiendo así dibujar en un icono áreas semitransparentes como sombras , suavizado y efectos de vidrio. Windows XP, de forma predeterminada, emplea iconos de 48×48 píxeles en el Explorador de Windows . Se puede obligar a Windows XP a utilizar iconos de hasta 256 × 256 modificando el valor del tamaño del icono del Shell , pero esto provocaría que se amplíen todos los iconos de 32 × 32 en todo el Shell. [3] Microsoft sólo recomendó tamaños de iconos de hasta 48×48 píxeles para Windows XP. [6] Windows XP puede reducir la escala de iconos más grandes si no hay un tamaño de imagen más cercano disponible. [3]

Windows Vista agregó soporte total para íconos de color de 32 bits de 256 × 256 píxeles , [Notas 1] , así como soporte para el formato PNG comprimido . Aunque no se requiere compresión, Microsoft recomienda que todos los íconos de color de 32 bits de 256 × 256 en archivos ICO se almacenen en formato PNG para reducir el tamaño total del archivo. El Explorador de Windows Vista admite la escala suave de íconos a tamaños no estándar que se representan sobre la marcha incluso si no hay una imagen para ese tamaño en el archivo de ícono. El shell de Windows Vista agrega un control deslizante para "acercar y alejar" el tamaño de los iconos. 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] [8]

Tipo de Mimica

Si bien el tipo MIME registrado por la IANA para archivos ICO es , [9] fue enviado a la IANA en 2003 por un tercero y no es reconocido por el software de Microsoft, que utiliza o en su lugar. [10] [11] También se han observado en uso tipos erróneos , , y . [9]image/vnd.microsoft.iconimage/x-iconimage/icoimage/icoimage/icontext/icoapplication/ico

Estructura de archivos 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 Windows BMP , 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 única 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] [3] 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 de abajo hacia arriba (lo que probablemente sea así), la máscara XOR se dibujará debajo de la máscara AND. La máscara AND 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(1) y cuáles son completamente opacos(0). 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 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 previstas de la imagen (después de que se compongan 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 se combinen). están compuestos). Por lo tanto, cada una de las máscaras debe 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. [12]

Las imágenes de 32 bits (incluidas las imágenes BMP de formato BITMAPINFOHEADER de 32 bits [Notas 2] ) son específicamente una imagen de 24 bits con la adición de un canal de 8 bits para 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 inferior al color verdadero mediante la construcción de una máscara AND basada en el canal alfa (si aún no reside uno con la imagen) si no se proporciona una versión de 24 bits de la imagen. el fichero 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 AND con la imagen. Proporcionar una máscara AND personalizada también permitirá que el autor del ícono realice ajustes y sugerencias. 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.

Es importante tener en cuenta que en la máscara AND, al igual que en la matriz de píxeles del mapa de bits , se deben agregar bytes de relleno al final de cada fila para aumentar su longitud a un múltiplo de cuatro bytes, ya que es básicamente un (monocromo) mapa de bits. [3] La máscara AND de un mapa de bits de 8x8 píxeles tendría 1 byte de datos y 3 bytes de relleno (8*8*1bpp = 64 bits/8 = 8 bytes de filas totales, por lo que cada fila tiene 1 byte y 3 bytes de Se necesita relleno), una máscara AND de un mapa de bits de 16x16 tendría 2 bytes de datos y 2 bytes de relleno, una máscara AND de un mapa de bits de 32x32 tendría 4 bytes de datos y ningún relleno. Tenga en cuenta que la cantidad de bytes de relleno necesarios depende de las dimensiones del mapa de bits y no de su profundidad de color, ya que la máscara AND es de 1 bit por píxel independientemente.

Describir

Todos los valores de los archivos ICO/CUR se representan en orden de bytes little-endian .

Encabezamiento

Estructura del directorio de imágenes.

Datos de imagen referenciados

Todos los datos de imágenes a los que hacen referencia las entradas del 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 se almacena en formato BMP, debe excluir la estructura de apertura BITMAPFILEHEADER , mientras que si se almacena en formato PNG, debe almacenarse 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 AND para los píxeles de la pantalla existentes, con los píxeles de salida dados por la fórmula Output = (Existing AND Mask) XOR Image. Establezca la máscara en cero en todas partes para una sobrescritura limpia.

formato PNG

La capacidad de leer imágenes PNG a partir 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 en formato BMP estándar de Windows, con la excepción de que la imagen PNG debe almacenarse en su totalidad, con su encabezado de archivo y debe estar en ARGB de 32 bpp. formato. [7]

Recursos de iconos y cursores

Los iconos y cursores en archivos ejecutables portátiles ( EXE o DLL ) están organizados en recursos de tipo RT_GROUP_ICON , RT_GROUP_CURSOR , RT_ICON y RT_CURSOR . [13]

Los recursos RT_GROUP_ICON y RT_GROUP_CURSOR contienen la estructura NEWHEADER y una o más estructuras RESDIR que tienen casi el mismo formato que las estructuras ICONDIR e ICONDIRENTRY correspondientes en archivos ICO/CUR. La principal diferencia en RESDIR es que el último miembro de la estructura contiene un identificador de recurso de dos bytes de RT_ICON / RT_CURSOR en lugar del desplazamiento de la imagen en el archivo.

Las estructuras NEWHEADER / RESDIR también se denominan GRPICONDIR / GRPICONDIRENTRY en muchas fuentes. [14]


Los recursos RT_ICON y RT_CURSOR tienen el mismo formato de datos de imagen que los archivos ICO y también pueden almacenar imágenes PNG. Además, los primeros cuatro bytes de los datos del recurso RT_CURSOR contienen los datos del punto de acceso del cursor , como dos valores de 16 bits (a diferencia de los archivos CUR, en los que los datos del punto de acceso están contenidos en la estructura ICONDIRENTRY ). [15]

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 ejecutable portátil de 32 bits que tiene una extensión .ICL y los recursos de íconos son los íconos empaquetados. Windows Vista y versiones posteriores no admiten la visualización de iconos de archivos de 16 bits ( nuevo ejecutable ). [dieciséis]

Ver también

Notas

  1. ^ abcde Desde Windows 95, el tamaño de una imagen en la estructura ICONDIRENTRY puede establecerse en cero, lo que significa 256 píxeles. Desde Windows Vista, el tamaño de una imagen se determina a partir de la estructura BITMAPINFOHEADER o datos de imagen PNG que técnicamente permiten almacenar iconos con más de 256 píxeles, pero Microsoft no recomienda tamaños tan grandes.
  2. ^ 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 superior en 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.
  3. ^ ab El sistema operativo trata de manera equivalente la configuración de los planos de color en 0 o 1, pero si los planos de color se configuran 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 del plano de color.
  4. ^ ab "Compatibilidad con el icono y el cursor de Windows XP". Microsoft. 18 de noviembre de 2005. Archivado desde el original el 30 de junio de 2011 . Consultado el 3 de julio de 2023 . El cursor se carga correctamente en cualquier profundidad de color en la que se creó el cursor. Sin embargo, el sistema no puede distinguir entre varios candidatos en el mismo archivo de cursor o recurso que se diferencian únicamente por la profundidad de su color. Sin embargo, los íconos admiten múltiples candidatos de íconos con diferentes profundidades de color.
  5. ^ ab Los bits por píxel pueden establecerse en cero, pero se pueden inferir de otros datos; específicamente, si el mapa de bits no está comprimido en PNG, entonces 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

  1. ^ "Estándar de detección MIME". QUÉ. 17 de enero de 2014. Archivado desde el original el 27 de marzo de 2014 . Consultado el 18 de abril de 2014 .
  2. ^ Fekete, Gyorgy (11 de marzo de 2009). "Diseño de interfaz del sistema operativo entre 1981-2009". Depósito de diseñadores web . Consultado el 6 de junio de 2011 .
  3. ^ abcdefgh Hornick, John (29 de septiembre de 1995). "Iconos". Artículos técnicos de la interfaz de usuario de Windows ( MSDN ) . Corporación Microsoft . Consultado el 5 de junio de 2011 .
  4. ^ "Componentes de la arquitectura de Windows 95". Microsoft TechNet . Corporación Microsoft . Consultado el 6 de junio de 2011 .
  5. ^ "Icono de concha BPP". Referencia del registro de Windows 2000 (Microsoft TechNet) . Corporación Microsoft . Consultado el 6 de junio de 2011 .
  6. ^ ab "Creación de iconos de Windows XP". Artículos técnicos de Windows XP (MSDN) . Corporación Microsoft. Julio de 2001 . Consultado el 27 de noviembre de 2022 .
  7. ^ abc Chen, Raymond (22 de octubre de 2010). "La evolución del formato de archivo ICO, parte 4: imágenes PNG". Lo viejo y nuevo: blogs de desarrolladores de Microsoft . Consultado el 27 de noviembre de 2022 .
  8. ^ "Iconos (conceptos básicos de diseño): aplicaciones Win32". aprender.microsoft.com . 9 de febrero de 2021. Los iconos tienen un tamaño máximo de 256x256 píxeles, lo que los hace adecuados para pantallas de alta resolución de ppp (puntos por pulgada). Estos íconos de alta resolución permiten una alta calidad visual en vistas de lista con íconos grandes... Solo se debe incluir una copia de 32 bits de la imagen de 256x256 píxeles, y solo se debe comprimir la imagen de 256x256 píxeles para mantener el tamaño del archivo bajo.
  9. ^ ab Butcher, Simon (3 de septiembre de 2003). "imagen/vnd.microsoft.icon" . Consultado el 3 de enero de 2014 .
  10. ^ Lawrence, Eric (11 de febrero de 2011). "Lista de cambios menores de IE9 RC". IEInternos . Blogs de MSDN . Consultado el 20 de agosto de 2016 . Usamos "image/x-icon" porque ese es el tipo MIME que siempre hemos usado. Alguien en algún momento (AFAIK, no relacionado con Microsoft) propuso el registro del tipo MIME como "vnd.microsoft.icon", pero Windows en realidad no usa eso, usa image/x-icon.Ver el segundo comentario.
  11. ^ Componente de imágenes de Windows: descripción general del formato ICO
  12. ^ Chen, Raymond (19 de octubre de 2010). "La evolución del formato de archivo ICO, parte 2: ¡Ahora en color!". Lo viejo y nuevo . Consultado el 30 de diciembre de 2022 .
  13. ^ "Formatos de archivos de recursos: aplicaciones Win32". aprender.microsoft.com . 2020-08-19 . Consultado el 22 de mayo de 2023 .
  14. ^ Chen, Raymond (20 de julio de 2012). "El formato de los recursos de iconos". Lo viejo y nuevo: blogs de desarrolladores de Microsoft . Consultado el 20 de mayo de 2023 .
  15. ^ "Estructura LOCALHEADER: aplicaciones Win32". aprender.microsoft.com . 2020-12-11 . Consultado el 22 de mayo de 2023 .
  16. ^ Chen, Raymond (mayo de 2008). "Windows Confidential: los iconos de 16 bits están tan pasados ​​de moda". Revista TechNet . Consultado el 27 de noviembre de 2022 .

enlaces externos