Red de conocimiento del abogados - Bufete de abogados - Descripciones detalladas de PNG, JPEG, BMP (IV)-GIF y otros formatos

Descripciones detalladas de PNG, JPEG, BMP (IV)-GIF y otros formatos

Las siguientes partes son de la Enciclopedia Baidu y algunas son mis propias opiniones. El propósito de escribir este artículo es que todos comprendan el conocimiento que ya está disponible en Baidu, pero ya no es necesario ir a Baidu. También tiene un profundo conocimiento de este formato de imagen. Después de leer este artículo, incluyéndome a mí, sentiré que incluso un pequeño punto de conocimiento será muy profundo en el futuro. Los principios subyacentes y profundos son mis favoritos, y esta es también la intención original de mi blog.

GIF (Formato de intercambio de gráficos) originalmente significa "Formato de intercambio de imágenes" y es un formato de archivo de imagen desarrollado por CompuServe en 1987. Los datos del archivo GIF son un formato de compresión de tono continuo sin pérdidas basado en el algoritmo LZW. Su relación de compresión suele rondar el 50% y no pertenece a ninguna aplicación. El formato GIF puede almacenar imágenes en varios colores. Si los datos de varias imágenes almacenadas en un archivo se leen una por una y se muestran en la pantalla, se puede formar la animación más simple.

Las imágenes GIF se basan en listas de colores (los datos almacenados son el valor de índice de la lista de colores correspondiente al color del punto) y solo admiten hasta 8 bits (256 colores). Los archivos GIF se dividen en muchos bloques de almacenamiento, que se utilizan para almacenar múltiples imágenes o bloques de control que determinan el comportamiento de la imagen para lograr animación y aplicaciones interactivas. Los archivos GIF también comprimen datos de imágenes mediante el algoritmo de compresión LZW para reducir el tamaño de la imagen.

El formato GIF fue lanzado por CompuServe en 1987. Debido a su pequeño tamaño y a sus imágenes relativamente claras, es especialmente adecuado para velocidades tempranas de Internet y es muy popular.

Al principio, el algoritmo de compresión LZW utilizado en GIF era un algoritmo gratuito desarrollado por Computer. Sin embargo, para sorpresa de muchos desarrolladores de software, el algoritmo de compresión utilizado en archivos GIF de repente se convirtió en patente de Unisys.

Según Unisys, han registrado la parte W del algoritmo LZW. Si desea desarrollar un programa que genere (o muestre) archivos GIF, deberá pagar regalías a la empresa. Por lo tanto, la gente comenzó a buscar una nueva tecnología para reducir los costos de desarrollo. En este contexto nació el estándar PNG (Portable Network Graphics). Por un lado, satisface la demanda del mercado de menos restricciones legales y, por otro lado, también trae menos restricciones técnicas, como por ejemplo el número de colores.

El 20 de junio de 2003 expiraron los derechos de patente del algoritmo LZW en Estados Unidos. Las patentes en Europa, Japón y Canadá también expiraron el 18 de junio, 20 de junio y 7 de julio de 2004, respectivamente. Sin embargo, debido a sus ventajas técnicas, el formato de archivo PNG se ha convertido en el tercer formato más utilizado en la web. Las patentes relacionadas con GIF expiraron el 11 de agosto de 2006.

Durante mucho tiempo, iOS ha sido criticado por no poder utilizar GIF. El motivo principal de esta situación es:

El GIF se puede dividir en GIF estático y GIF animado, con la extensión. GIF. GIF es un formato de mapa de bits comprimido que admite imágenes de fondo transparentes y es adecuado para varios sistemas operativos. GIF es muy pequeño y muchas animaciones pequeñas en Internet están en formato GIF. Gif en realidad guarda varias imágenes en un archivo de imagen para formar una animación. El más común es una imagen GIF divertida conectada cuadro por cuadro, por lo que, después de todo, GIF sigue siendo un formato de archivo de imagen.

Pero GIF sólo puede mostrar 256 colores. Al igual que el formato jpg, este es un formato de archivo de gráficos muy popular en Internet.

GIF se divide principalmente en dos versiones, a saber, GIF 89a y GIF 87a.

La sintaxis proporcionada aquí se utiliza para interpretar la secuencia de bloques que forman un flujo de datos gif, que está representado por una lista de reglas. A continuación se enumeran las definiciones de símbolos utilizadas en la sintaxis gif.

Definición de símbolo de la sintaxis gif:::= Head<data> *Registro de cola

Los bloques de datos en el flujo de datos gif se pueden dividir en tres grupos: bloques de control, bloques de imágenes y Bloques especiales.

Tabla de colores: el formato GIF utiliza una tabla de colores para mostrar imágenes rasterizadas. La tabla de colores se divide en una tabla de colores global y una tabla de colores local. La tabla de colores global se aplica a imágenes que no tienen una tabla de colores local configurada. El alcance de la tabla de colores global es todo el flujo de datos. El mapa de colores local se aplica a la imagen individual que le sigue. Ambas tablas de colores son opcionales.

La tabla de colores global es lo que nos interesa. Un poco como una paleta definida en formato png. Si quieres modificar el color de la imagen gif, jaja, puedes modificar esta tabla de colores global. Si hay un bloque de tabla de colores global, debe comenzar con una secuencia gif de 14 bytes (los primeros 6+7 bloques de descripción de video lógicos).

La siguiente es una descripción de cada bloque de datos. Si está marcado como versión 89a, significa que el bloque de datos no aparecerá en la versión 87a del protocolo.

El campo Embalaje explica:

Los archivos GIF se dividen en bloques, incluidos bloques de control y subbloques de datos. El bloque de control controla el comportamiento del bloque de datos y contiene algunos parámetros de control diferentes según los diferentes bloques de control. El bloque de datos solo contiene un flujo de caracteres de 8 bits y su función está determinada por el bloque de control anterior. El tamaño de cada bloque de datos varía de 0 a 255 bytes. El primer byte del bloque de datos representa el tamaño del bloque de datos (número de bytes) y no se incluye al calcular el tamaño del bloque de datos, por lo que un bloque de datos vacío tiene un byte, que es el tamaño del bloque de datos 0x00.

La siguiente tabla muestra la estructura del bloque de datos:

La estructura del archivo GIF se puede dividir en tres partes: encabezado del archivo, flujo de datos GIF y avance del archivo. El encabezado del archivo contiene la firma del archivo GIF y el número de versión; el flujo de datos GIF consta de identificadores de control, bloques de imágenes y otros bloques de extensión. El terminador de archivo tiene solo un carácter ("";) que indica el final del archivo. La siguiente tabla muestra la estructura de un archivo GIF:

Se utiliza para identificar la firma del GIF y el número de versión.

La firma GIF se utiliza para confirmar si el archivo está en formato GIF. Esta parte consta de tres caracteres: "GIF"; el número de versión del archivo también consta de tres bytes, que pueden ser "87a" o "89a". Los detalles se muestran en la siguiente figura.

Contiene muchas partes.

(1) Descriptor de pantalla lógica: esta parte consta de 7 bytes y define el tamaño de la imagen GIF (ancho y alto de pantalla lógica), bits de color, color de fondo (Blackground ColorIndex) y si hay IndexCount. de la tabla de colores global y la lista de colores, como se muestra en la siguiente figura.

También puedes consultar la imagen a continuación.

(2) Tabla de colores globales:

La lista de colores globales debe seguir el identificador de pantalla lógico y cada entrada del índice de la lista de colores consta de tres bytes, según R, G Organizados en secuencia con B..

(3) Descriptor de imagen: un archivo GIF puede contener varias imágenes y una imagen va seguida de un identificador de imagen. El identificador de imagen comienza con los caracteres 0x2C (' ', '') y define las propiedades de la imagen siguiente, incluido el desplazamiento de la imagen en relación con los límites lógicos de la pantalla, el tamaño de la imagen, la presencia o ausencia de un color local. lista y el color El tamaño de la lista (10 bytes).

También puedes consultar la imagen a continuación.

(4) Tabla de colores locales: si se establece el indicador de lista de colores locales mencionado anteriormente, debe definir aquí una lista de colores locales (inmediatamente después del identificador de imagen) para la imagen detrás de ella. Tenga en cuenta que la lista de colores original debe guardarse en línea antes de su uso y la lista de colores global guardada original debe restaurarse después de su uso. Si el archivo GIF no proporciona una lista de colores global o una lista de colores local, puede crear una lista de colores usted mismo o utilizar la lista de colores del sistema. La lista de colores locales está organizada de la misma manera que la lista de colores global: RGBRGB. ......

(5) Datos de imagen basados ​​en tablas: consta de dos partes: longitud mínima del código LZW y datos de imagen.

El siguiente es un diagrama esquemático de la estructura de almacenamiento general.

Adobe ImageReady y fuegos artificiales son el principal software producido en PC.

Producción y edición de GIF en línea gif5.net en la web, admite imágenes, videos y FLASH a GIF.

Normalmente uso LICEcap para hacer imágenes gif.

1. Enciclopedia Baidu

2. La estructura de almacenamiento de archivos y el principio de animación de las imágenes GIF.

3. Análisis en profundidad de los principios y estructura de almacenamiento de imágenes GIF.