Red de conocimiento del abogados - Preguntas y respuestas sobre la Ley de patentes - Explicación detallada de PNG, JPEG, BMP y otros formatos de imagen (4) - GIF

Explicación detallada de PNG, JPEG, BMP y otros formatos de imagen (4) - GIF

Parte del siguiente contenido proviene de la Enciclopedia Baidu, y parte de él es mi propia opinión. El propósito de escribir este artículo es que todos comprendan el conocimiento existente sobre Baidu sin tener que ir a Baidu. Puede ver mi comprensión profunda de este formato de imagen. Después de leer este artículo, incluyéndome a mí, sentirá que incluso un punto de conocimiento muy pequeño será muy profundo cuando lo profundice. son mis favoritos, que es también la intención y propósito original de mi blog.

El significado original de GIF (Formato de intercambio de gráficos) es "Formato de intercambio de gráficos", que 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 los 50 y no pertenece a ninguna aplicación. El formato GIF puede almacenar múltiples imágenes en color. Si varios datos de imágenes almacenados en un archivo se leen uno por uno y se muestran en la pantalla, se puede formar una de las animaciones más simples.

Las imágenes GIF se basan en listas de colores (los datos almacenados son el color del punto correspondiente al valor del índice de la lista de colores) y solo admiten hasta 8 bits (256 colores). El archivo GIF está dividido internamente 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 implementar animaciones 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.

Desde que CompuServe introdujo el formato GIF en 1987, se ha vuelto muy popular debido a su pequeño tamaño y a sus imágenes relativamente claras, lo que era especialmente adecuado para la lenta Internet inicial.

En sus inicios, el algoritmo de compresión LZW utilizado por 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 desarrolla un programa que genera (o muestra) archivos GIF, debe pagar regalías a la empresa. Como resultado, la gente empezó a buscar una nueva tecnología para reducir los costos de desarrollo. En este contexto surgió el estándar PNG (Portable Network Graphics). Por un lado, satisface la necesidad del mercado de tener menos restricciones regulatorias y, por otro lado, también trae menos restricciones técnicas, como la cantidad de colores.

El 20 de junio de 2003 expiraron los derechos de patente del algoritmo LZW en Estados Unidos. Los derechos de patente en Europa, Japón y Canadá también expiraron el 18 de junio, 20 de junio y 7 de julio de 2004, respectivamente. A pesar de ello, el formato de archivo PNG se ha convertido en el tercer formato más utilizado en Internet debido a sus ventajas técnicas. La patente relacionada con GIF expiró el 11 de agosto de 2006.

Durante mucho tiempo, iOS ha sido criticado por no poder utilizar GIF. Las principales razones de esta situación son:

GIF se divide en dos tipos: GIF estático y GIF animado. La extensión es .gif. Es un formato de mapa de bits comprimido que admite imágenes de fondo transparentes y es adecuado para un. variedad de aplicaciones. El sistema operativo es de tamaño muy pequeño y muchas animaciones pequeñas en Internet están en formato GIF. De hecho, GIF guarda varias imágenes en un archivo de imagen para formar una animación. La más común es una imagen gif divertida conectada a través de un cuadro de animación, por lo que, en última instancia, 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 describir la secuencia de bloques que forma el flujo de datos gif, expresada mediante alguna regla. listas. Las definiciones de símbolos utilizadas en la sintaxis gif se enumeran a continuación.

Definición del símbolo de la sintaxis del gif: lt; flujo de datos GIF gt; ::= headerlt;; pantalla lógica lt;; registro de cola

datos del gif la corriente se puede dividir en tres grupos: bloques de control, bloques de imágenes y bloques de propósito especial.

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 funciona para 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. La tabla de colores local funciona para la imagen única que le sigue inmediatamente. Ambas cartas de colores son opcionales.

La tabla de colores globales es lo que nos interesa. Es un poco como la paleta definida en el formato png. Si quieres modificar el color de la imagen gif, jaja, simplemente modifica el color global. table Si hay un bloque de tabla de colores global, entonces debe comenzar desde 14 bytes de la secuencia gif (encabezado 6, bloques de descripción de video lógicos, 7).

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

Descripción de campos empaquetados:

Los archivos GIF se dividen internamente en bloques, incluidos los bloques de control y subbloques de datos. El bloque de control controla el comportamiento del bloque de datos. Contiene diferentes parámetros de control según los diferentes bloques de control; el bloque de datos solo contiene algunos flujos de caracteres de 8 bits y su función está determinada por el tamaño del bloque de control. de cada bloque de datos De 0 a 255 bytes, el primer byte del bloque de datos indica el tamaño del bloque de datos (el número de bytes no se incluye al calcular el tamaño del bloque de datos, por lo que tiene un bloque de datos vacío). un byte, ese es el tamaño del bloque de datos 0x00. La siguiente tabla muestra la estructura de un bloque de datos:

La estructura de un archivo GIF se puede dividir en tres partes: encabezado de archivo, flujo de datos GIF y terminador de archivo (tráiler). El encabezado del archivo contiene la firma del archivo GIF (Firma) y el número de versión (Versión); el flujo de datos GIF consta de un identificador de control, un bloque de imagen (ImageBlock) y algunos otros bloques de extensión que tienen solo un carácter con un valor; de 0x3B (' ';'') indica el final del archivo. La siguiente tabla muestra la estructura de un archivo GIF:

se utiliza para identificar la firma del GIF (Signature) y el número de versión (Version).

La firma GIF se utiliza para confirmar si un 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), profundidad de color (bits de color), color de fondo (índice de color de fondo negro). ) y si hay una lista de colores global (Tabla de colores global) y el número de índice de la lista de colores (IndexCount). Consulte la figura siguiente para obtener una descripción detallada.

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

(2) Tabla de colores globales:

La lista de colores globales debe seguir inmediatamente al identificador de pantalla lógico. Cada entrada del índice de la lista de colores consta de tres bytes de composición, ordenados en el orden de R. , G y B.

(3) Descriptor de imagen: un archivo GIF puede contener varias imágenes Inmediatamente después del final de una imagen está el identificador de una imagen. El identificador comienza con el carácter 0x2C ('', ''). define las propiedades de la imagen que la sigue inmediatamente, incluido el desplazamiento de la imagen en relación con el límite lógico de la pantalla, el tamaño de la imagen y si hay una lista de colores local y un tamaño de lista de colores, que consta de 10 bytes, como se muestra a continuación.

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

(4) Tabla de colores locales: si el indicador de lista de colores locales anterior está configurado, debe definir una lista de colores locales aquí (inmediatamente después del identificador de imagen) para que la use la imagen inmediatamente después. Al hacerlo, tenga en cuenta que la lista de colores original debe guardarse antes de su uso y la lista de colores global guardada original debe restaurarse después de su uso. Si un 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 disposición de la lista de colores local es la misma que la lista de colores global: RGBRGB...

(5) Datos de imagen basados ​​en la lista de colores (datos de imagen basados ​​en tablas): consta de dos partes: Longitud del código LZW (Tamaño mínimo del código LZW) y datos de imagen (Datos de imagen).

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

Los dos principales software de producción en PC son Adobe ImageReady y Fireworks.

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

Normalmente uso LICEcap para crear imágenes gif.

1. Enciclopedia Baidu

2. Estructura de almacenamiento de archivos y principio de animación de imágenes GIF

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