Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Portable Network Graphics
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{redirige|PNG}} {{Ficha de formato de archivo |nombre = PNG (Portable Network Graphics) |captura = [[Archivo:PNG transparency demonstration 1.png|300px]]<br />[[Archivo:PNG transparency demonstration 2.png|300px]] |pie = Dados. |extensión = .png |MIME = image/png |type_code = PNGf<br />PNG |uniform_type = public.png |número_mágico = 89 50 4e 47 0d 0a 1a 0a |lanzamiento = {{Fecha de inicio|1|10|1996}} |desarrollador = PNG Development Group (donado a [[W3C]]) |género = [[Gráfico rasterizado]] [[Algoritmo de compresión sin pérdida|comprimido sin pérdidas]] |contenedor_para = |contenido_por = |extendido_de = |extendido_a = [[Animated Portable Network Graphics|APNG]], [[JPEG Network Graphics|JNG]] y [[Multiple-image Network Graphics|MNG]] |estándar = [[International Organization for Standardization|ISO]] 15948, [[Internet Engineering Task Force|IETF]] RFC 2083 |abierto = Sí }} '''PNG''' (siglas en inglés de '''''Portable Network Graphics''''', '''Gráficos de Red Portátiles''') es un [[Formatos gráficos|formato gráfico]] basado en un [[algoritmo de compresión sin pérdida]] para [[bitmap]]s no sujeto a [[patente]]s. Este formato fue desarrollado en buena parte para solventar las deficiencias del formato [[GIF]] y permite almacenar imágenes con una mayor profundidad de contraste y otros datos importantes. Las imágenes PNG usan la extensión '''.png''' y han obtenido un [[Multipurpose Internet Mail Extensions|tipo MIME]] ('''image/png''') aprobado el 14 de octubre de 1996. == Detalles técnicos == Un archivo PNG empieza con una [[Número mágico (informática)|firma de 8 bytes]], cuyos valores en hexadecimal son: 89 50 4E 47 0D 0A 1A 0A, los valores decimales son: 137 80 78 71 13 10 26 10; cada valor está ahí por una razón específica.<ref> {{ Cita web | url = http://www.libpng.org/pub/png/spec/1.2/png-1.2.pdf | título = PNG (Portable Network Graphics) Specification, Version 1.2 | fechaacceso = 12 de abril de 2019 | apellidos = Randers-Pehrson | nombres = Glenn | fecha = 14 de julio de 1999 | sitioweb = Libpng Org. | idioma = en | página = 12 | formato = pdf | urlarchivo = https://web.archive.org/web/20040212095337/http://www.libpng.org/pub/png/spec/1.2/png-1.2.pdf | fechaarchivo = 12 de febrero de 2004 }} </ref> {|class=wikitable !|Byte(s) !style="text-align:left"|Propósito |- |89 |Tiene el bit más alto puesto a 1 para detectar sistemas de transmisión que no soportan datos de 8 bits y para reducir el riesgo de que un fichero de texto sea erróneamente interpretado como PNG. |- |50 4E 47 |En [[ASCII]], las letras "PNG" permitiendo que una persona identifique el formato en caso de verlo en un editor de texto. |- |0D 0A |Una nueva línea con estilo [[DOS]] (CRLF) para detectar las conversiones de final de línea entre DOS y UNIX. |- |1A |Un byte que detiene el despliegue del fichero bajo DOS cuando se ha usado el comando TYPE. |- |0A |Una nueva línea en UNIX (LF) para detectar la conversión de final de línea entre DOS y UNIX. |} == Segmentos del archivo == Después de la cabecera se encuentran una serie de segmentos de los cuales cada uno guarda cierta información acerca de la imagen. Los segmentos se auto declaran como puntos críticos (''critical'') o auxiliares (''ancillary'') de modo que un programa que encuentre un segmento auxiliar y no lo entienda puede ignorarlo sin peligro. La estructura basada en segmentos está diseñada para poder ampliar el formato PNG manteniendo la compatibilidad con versiones antiguas. Cada una de las secciones tiene una cabecera que específica su tamaño y tipo, inmediatamente seguido de los datos y el [[checksum]] de los datos. Las secciones tienen un nombre de 4 letras que es sensible a las mayúsculas. El uso de mayúsculas o minúsculas en dicho nombre provee a los decodificadores de información acerca de las secciones que no son reconocidas. Si la primera letra es mayúscula esto indica que la sección es esencial, en caso contrario será auxiliar. Las secciones esenciales son necesarias para leer el fichero, si el decodificador encuentra una sección esencial que no reconoce debe abortar la lectura. En caso de que la segunda letra sea mayúscula esto significará que la sección es pública en la especificación o el registro de secciones para propósitos especiales, en caso contrario será privada (no estandarizada). Este uso de mayúsculas y minúsculas asegura que nunca haya conflictos entre secciones públicas y privadas. La tercera letra debe estar en mayúsculas para cumplir las especificaciones de PNG y está reservada para futuras expansiones. La cuarta letra indica si es seguro copiar la sección en caso de que no sea reconocida, en caso de estar en minúsculas es seguro copiar la sección sin importar la cantidad de modificación que haya sufrido el fichero, si es mayúscula solo se deberán copiar si no hay secciones críticas que hayan sufrido modificaciones. == Secciones esenciales == Un decodificador debe ser capaz de entender estas secciones para leer y [[Renderización|renderizar]] un PNG: * IHDR, debe ser la primera sección, contiene la cabecera. * PLTE, contiene la paleta (lista de colores). * IDAT, contiene la imagen que debe ser dividida en múltiples secciones IDAT, haciendo esto se incrementa el tamaño de la imagen ligeramente pero hace posible generar imágenes PNG en [[streaming]]. * IEND, marca el final de la imagen. == Secciones de metadatos == Otros atributos que pueden ser guardados en una imagen PNG son: valores de gamma, color del fondo e información textual. PNG también soporta corrección de color con el uso de sistemas de manejo del color como [[Espacio de color sRGB|sRGB]]. * bKGD: contiene el color de fondo por defecto, se usa cuando no hay un mejor color disponible para mostrar, como en un visor de imágenes pero no en un [[navegador web]]. * cHRM: balance de blanco. * gAMA: específica la gamma. * hIST: guarda el histograma o cantidad total de cada color en la imagen. * iCCP: perfil ICC de color. * iTXt: contiene texto ([[UTF-8]]) comprimido o no. * pHYs: contiene el tamaño previsto del píxel y/o el ratio de la imagen. * sBIT: (bits significativos) indican la exactitud de los colores en la imagen. * sPLT: sugiere una paleta para usar en caso de que el rango completo de colores no esté disponible. * sRGB: indica que se usa el estándar sRBG color space. * tEXt: almacena texto que puede ser representado en [[ISO 8859-1]] con un nombre=valor para cada sección. * tIME: almacena la fecha de la última modificación. * tRNS: contiene información sobre la transparencia. Para imágenes indexadas almacena el canal alfa para una o más paletas, para imágenes en color real y escala de grises almacena la información de un solo píxel que debe ser considerado completamente transparente. * zTXt: contiene texto comprimido con los mismos límites que tEXt. La primera letra en minúsculas de estas secciones indica que no son necesarias en la especificación de PNG, la última letra en minúsculas indica que es seguro copiarlas incluso si la aplicación en cuestión no las entiende. Otros atributos que pueden ser almacenados en un PNG incluyen valores de [[corrección gamma]], color de fondo y [[metadatos]]. PNG además también utiliza la [[corrección de color]] que utilizan los [[sistemas de administración de color]] como el [[Espacio de color sRGB|sRGB]]. Algunos programas como [[Adobe Photoshop]] disponen de este sistema. == Profundidad de color == Las imágenes en formato PNG pueden ser imágenes de paleta indexada o estar formadas por uno o varios [[Canal (imagen digital)|canal]]es. Si existe más de un canal, todos los canales tienen el mismo número de bits por píxel (también llamado profundidad de bits por canal). Aunque en la [https://www.w3.org/TR/2003/REC-PNG-20031110/ especificación oficial] del PNG se nombra la profundidad de bits por canal, normalmente los programas de edición nombran solo la cantidad total de bits por píxel, es decir, la [[profundidad de color]]. El número de canales depende de si la imagen es en escala de grises o en color y si dispone de [[canal alfa]] (también llamado canal de transparencia). La combinaciones permitidas por PNG son: * Escala de grises (1 canal). * Escala de grises y canal alfa (2 canales). * Canales rojo, verde y azul ([[Modelo_de_color_RGB|RGB]], 3 canales, también llamado [[Profundidad de color#Color verdadero o True Color|color verdadero o Truecolor]]). * Canales rojo, verde, azul y alfa (RGB + alfa, 4 canales). Por otra parte, las [[Profundidad de color#Color indexado|imágenes indexadas]] disponen de un tope de 256 colores como máximo. Esta paleta de colores está almacenada con una profundidad de canal de 8 bits. La paleta no puede tener más colores que los marcados por la profundidad de bits, es decir 2<sup>8</sup>=256 colores, aunque sí puede tener menos (por ejemplo, una imagen de 50 colores solo almacenará 50 entradas, evitando almacenar datos que no son utilizados). {| class="wikitable" border="1" align="right" |+'''Rango total de opciones de color soportados''' |- | align=right | Profundidad de bits por canal | align=center | 1 | align=center | 2 | align=center | 4 | align=center | 8 | align=center | 16 |- | align=right | Imagen indexada (1 canal) | align=center bgcolor=lightgreen | 1 | align=center bgcolor=lightgreen | 2 | align=center bgcolor=lightgreen | 4 | align=center bgcolor=lightgreen | 8 | bgcolor=red | |- | align=right | Escala de grises (1 canal) | align=center bgcolor=lightgreen | 1 | align=center bgcolor=lightgreen | 2 | align=center bgcolor=lightgreen | 4 | align=center bgcolor=lightgreen | 8 | align=center bgcolor=lightgreen | 16 |- | align=right | Escala de grises con alfa (2 canales) | bgcolor=red | | bgcolor=red | | bgcolor=red | | align=center bgcolor=lightgreen | 16 | align=center bgcolor=lightgreen | 32 |- | align=right | Color verdadero (RGB) (3 canales) | bgcolor=red | | bgcolor=red | | bgcolor=red | | align=center bgcolor=lightgreen | 24 | align=center bgcolor=lightgreen | 48 |- | align=right | Color verdadero con alfa (RGBA) (4 canales)<!--pairs of unicode digit spaces used to give table more uniform feel--> | align=center bgcolor=red | | align=center bgcolor=red | | align=center bgcolor=red | | align=center bgcolor=lightgreen | 32 | align=center bgcolor=lightgreen | 64 |} La tabla expuesta a la derecha indican la '''profundidad de color''' para cada formato de imagen que soporta PNG. Esta se extrae de la profundidad de bits por canal y se multiplica por el número de canales. Las casillas en rojo representan combinaciones no soportadas. El estándar requiere que los [[decodificador]]es puedan leer todos los formatos disponibles, pero muchos editores de imagen solo pueden generar un pequeño subconjunto de ellos. == Transparencia en la imagen == PNG ofrece una gran variedad de opciones de transparencia: con [[color verdadero]] o escala de grises, incluso un solo píxel puede ser declarado transparente o puede añadirse un canal alfa. Para imágenes que usan paletas se puede añadir un canal alfa en las entradas de la paleta. El número de dichos valores almacenados puede ser menor que el total de entradas en la paleta, de modo que el resto de las entradas se considerarán completamente opacas. La búsqueda de píxeles con transparencia binaria debe hacerse antes de cualquier reducción de color para evitar que algunos píxeles se conviertan en transparentes accidentalmente. A diferencia de la transparencia ofrecida por [[GIF]] que solo puede tomar 2 valores (completamente transparente o completamente opaco), el canal alfa de PNG permite utilizar mayor profundidad de bits para lograr efectos de semi-transparencia, propios de objetos translúcidos. Por ejemplo, con una profundidad de 8 bits para transparencias se pueden conseguir 2<sup>8</sup> = 256 grados diferentes de transparencia, como si se tratara de un color.<ref>[http://www.libpng.org/pub/png/]</ref> == Compresión == El método de [[Compresión de datos|compresión]] utilizado por el PNG es conocido como [[Deflación (algoritmo)|deflación]] (en inglés "[[DEFLATE (algorithm)|Deflate algorithm]]"). También existen métodos de filtrado. En la especificación 1.2 se define un único tipo de filtro, que incluye 5 modos de predicción del valor del píxel, que resulta muy útil para mejorar la compresión, donde se elige para cada línea de la imagen ([[scanline]]) un ''método de filtrado'' que predice el color de cada [[píxel]] basándose en los colores de los píxeles previos y resta al color del píxel actual, el color pronosticado. Los cinco métodos son: None, Sub, Up, Average y [[Paeth]]. Estos filtros pueden reducir notablemente el tamaño final del archivo, aunque depende en gran medida de la imagen de entrada. El algoritmo de compresión puede encargarse de la adecuada elección del método que mayor reducción ofrezca. El tipo de media [[MIME]] para PNG es "image/png" (aprobado el 14 de octubre de 1996). == Animación == [[APNG]] es una extensión de PNG que soporta animación. Este formato soporta el visionado de una sola imagen en caso de que el decodificador no entienda el archivo. Es aceptado por múltiples navegadores<ref>[[Animated Portable Network Graphics]]</ref> y tiene extensión ''.png''.<ref> {{ Cita web | url = https://www.emojipng.com/preview/40 | título = Man Shrugging Emoji PNG | fechaacceso = 12 de marzo de 2020 | apellidos = Mark Lafetu | nombres = | fecha = 12 de marzo de 2020 | sitioweb = emojipng.com | idioma = en | página = | formato = PNG | urlarchivo = | fechaarchivo = }} </ref> Por otro lado, [[Multiple-image Network Graphics|MNG]] es un formato de imagen que soporta animación y está basado en las ideas y en algunas secciones de PNG, pero es un sistema complejo y no permite el visionado de una sola imagen en caso de no existir soporte completo en el visualizador de imágenes pertinente.<ref>{{cita web|título=.png Extensión de archivo: Para qué son los archivos PNG?|url=https://abrirarchivos.info/extension/png|obra=abrirarchivos|fechaacceso=16 de octubre de 2021}}</ref> == Comparación técnica con otros formatos == === Comparación con GIF === * En la mayoría de los casos, PNG comprime mejor que el formato GIF, aunque algunas implementaciones (véase [[Photoshop]]) realizan una mala selección de los métodos de filtrado y se generan ficheros de mayor tamaño. * El PNG admite, al igual que el GIF, [[Profundidad de color#Color indexado|imágenes indexadas]] con transparencia de 1 bit o "binaria". Este tipo de transparencia no requiere de un canal adicional y únicamente admite que un color de la paleta aparezca transparente al 100%. * El PNG admite formatos con una profundidad de color de millones de colores ([[Profundidad de color#Color verdadero o True Color|color verdadero]]) y [[canal alfa]], lo que proporciona unos rangos de color mucho más ricos y precisos que el GIF y disponer de valores de transparencia intermedios. Lamentablemente, esto permite que se compare de forma errónea los PNG de color verdadero con los GIF de color indexado (256 colores). * GIF soporta animación y PNG no. (ver [[Portable Network Graphics#Animación| sección de animación]]). === Comparación con JPEG === [[Archivo:Comparison of JPEG and PNG.png|thumb|200px|left|Imagen compuesta comparando JPEG y PNG: nótese los artificios en la imagen JPEG versus el fondo en color sólido para la misma imagen en PNG.]] PNG y [[JPEG]] son formatos que están diseñados para funciones diferentes, por lo que únicamente se puede realizar una comparación generalista: * JPEG tiene una relación de compresión enorme en perjuicio de la calidad de la imagen, ideal para imágenes de gran tamaño y fotografías. No admite transparencia. * PNG es un formato sin pérdida de calidad con una excelente compresión, ideal para imágenes formadas por grandes áreas de color plano o con pocas variaciones de color. Admite canal [[Composición alfa|alfa]] y algunos atributos extra como la corrección gamma. Sin embargo, no admite [[Modelo de color CMYK|modo CMYK]], por lo que no es del todo útil para diseños de impresión. == PNG en la web == * Pese a que las características técnicas y de compresión hacen de PNG un formato ideal para sustituir a GIF, su adopción ha sido muy lenta, debido en parte a comparaciones erróneas y algunas desventajas técnicas: * No está soportado por algunos navegadores muy viejos (tales navegadores, sin embargo, entraron en desuso en la primera década del {{siglo|XXI||s}}). * la administración de color fallaba en algunos navegadores (fácilmente evitable por la razón anterior). == Problemas de color == Algunas versiones de algunos [[Navegador web|navegadores web]] presentan los valores de corrección gamma incluso cuando no están especificados en el PNG. Navegadores conocidos con problemas de visualización de PNG: * Internet Explorer 5.5 y 6. * Netscape 7.0 a 7.2. * Opera (versiones anteriores a la 7.50). El efecto final es que el color mostrado en el PNG no coincide con el esquema de color del resto de la página web. Una forma sencilla de evitar esto es volviendo a codificar el PNG truncando ciertos atributos. Algunas utilidades para tal fin: * [https://advsys.net/ken/utils.htm PNGOUT] es una utilidad gratuita de [[DOS]] que utiliza un algoritmo exclusivo para recomprimir un PNG y reducir el tamaño del fichero al mínimo, sin pérdidas. * [[Superpng]], es un plugin gratuito para [[Photoshop]] que permite la optimización de ficheros PNG. * [[OptiPNG]] es una utilidad gratuita que recomprime un PNG, reduciendo su tamaño sin pérdidas. == Bibliografía == * {{cita libro|url=http://www.libpng.org/pub/png/book/toc.html|título=PNG: The Definitive Guide|autor=Greg Roelofs|editorial=O'Reilly & Associates, Inc.|año=1999|formato=libro completo en [[html]]|idioma=inglés|urlarchivo=https://web.archive.org/web/20060210122131/http://www.libpng.org/pub/png/book/toc.html|fechaarchivo=10 de febrero de 2006}} (A excepción de las tapas, el libro está bajo licencia [[GFDL]]) == Referencias == {{Listaref}} == Enlaces externos == * [http://www.libpng.org/pub/png/ Sitio web del formato PNG] {{en}} * [http://www.w3c.org/Graphics/PNG/ Página del Web Consortium sobre PNG] {{en}} * [https://www.libpng.org/pub/png/libpng.html libpng], biblioteca oficial en [[C (lenguaje de programación)|C]] {{en}} {{Control de autoridades}} [[Categoría:Compresión de imagen]] [[Categoría:Formatos gráficos|PNG (Portable Network Graphics)]] [[Categoría:Formatos abiertos]] [[Categoría:Estándares gráficos]] [[Categoría:Estándares del World Wide Web Consortium]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Portable Network Graphics
»
Añadir idiomas
Añadir tema