Se você já tentou salvar um arquivo de imagem alguma vez na sua vida, você pode ter se deparado com várias opções, como JPG, PNG, BMP, GIF, WebP, entre inúmeras outras, tendo absolutamente nenhuma ideia sobre o que cada uma dessas significa ou qual a diferença entre elas. Nesse tutorial, iremos aprender um pouco sobre esses formats de imagem, quando deve usá-las, e quando evitá-las.
PNG: Seguro e Imenso
Se estiver em dúvida e não ter problema gastando dinheiro comprando novos discos rígidos por que você encheu o seu com imagens PNG, então salvar tudo como PNG é uma escolha.
PNG é um formato de imagem antigo comprimido e sem perda (do Inglês: lossless) que suporta transparência. Vamos aprender o que isso significa mais abaixo.
JPG: Imagens Finais e Fotografia
Se você terminou de editar uma imagem e tem 100% de certeza que você nunca irá editar ou modificá-la de novo, então JPG é a escolha certa.
JPG é um formato de imagem antigo comprimido e com perda (lossy) e que não suporta transparência.
GIF: Gráficos Animado de 8-Bits
GIF é um formato que existia antes do PNG, e que o PNG tentou substituir completamente. Ele sobreviveu apenas por que GIF suportava imagens animadas enquanto PNG não. Há quase nenhum motivo para usar GIF hoje em dia, exceto se você estiver criando pixel art animado ou algo do gênero.
GIF é um format de imagens de 8 bits muito antigo não-comprimido com uma única cor transparente e suporte a animações.
Nota: hoje em dia, o termo "GIF" na Internet geralmente refere a um formato de vídeo chamado WebM quando é um vídeo em loop,
WebP: O novo PNG e GIF
WebP é um novo formato capaz de compreensão sem perda melhor que PNG. Ele também suporta compreensão com perda, mas é geralmente pior que JPG para fotografia. Ainda sim é decente para imagens contendo texto, como screenshots, mas requer configurar o codec de compreensão apropriadamente.
WebP é um novo formato comprimido sem-ou-com-perda com suporta a transparência e a animação.
BMP: Não.
BMP é um formato proprietário do Windows que você NUNCA deve usar, pois PNG é sempre melhor.
BMP é um formato sem compreensão.
Entendendo Compreensão
Para uma imagem ser exibida na tela, ela precisa ser convertida em uma grade de pequenos quadrados coloridos, chamados de pixels. Um pixel armazena os dados de sua cor no formato RGB como uma tupla de 3 bytes. um byte para cada canal de cor (vermelho, verde, e azul, em Inglês: red, green, blue). Se são necessários 3 bytes para encodificar 1 pixel, seriam necessários 3 kilobytes para encodificar 1000 pixels, e 3 megabytes para encodificar 1 megapixel. Uma imagem de 1000 pixels de largura por 100 pixels de altura tem 1 milhão de pixels (1 megapixel), logo ocupa 3 megabytes em memória, seja na RAM ou na GPU.
Entretanto, 3 megabytes é muito coisa para uma imagem apenas. Uma tela típica tem uma resolução de 1600x900px, que seria 1.44 megapixels. Isso significa que um papel de parede seria 4.32 megabytes de memória. Uma foto típica tirada por uma camera possui uma resolução muito maior que isso. Não é incomum haver cameras capazes de tirar imagens de 12 megapixels.
Se esses dados forem salvos como um arquivo dessa forma, isso geraria arquivos de imagem ENORMES, e nós ficaríamos sem espaço nos nossos discos rígidos bem rapidamente.
É por esse motivo que você nunca deve usar BMP, pois BMP não é comprimido. Se você salvar uma imagem completamente branca de 1000x1000px como BMP, ela gastará 3 megabytes inteiros de armazenamento no disco rígido. Se você tentar isso e ver que é menos de 3 MB, é por que seu MB quer dizer mebibyte (220 bytes), e não megabyte (103 bytes). Uma imagem d 1024x1024px teria exatamente 3 mebibytes, mais alguns bytes que não são para os dados de pixels mas para os dados de cabeçalho dentro do arquivo.
Para resolver isso, quase todos os formatos de imagem são comprimidos.
Isso significa que os dados de pixels passam por um algoritmo de compreensão que cria um pedaço de dados comprimidos, que é menor que os dados originais, e são esses dados comprimidos que serão salvos como o arquivo.
Entretanto, nós ainda precisamos dos dados dos pixels originais para exibir a imagem, então toda vez que o arquivo de imagem precisa ser exibido na tela, um algoritmo reverse de descompressão é executado, e os dados comprimidos são descomprimidos de volta para os dados originais.
Lossy vs. Lossless
Algoritmos de compreensão podem ser lossy (com perda de dados) ou lossless (sem perda de dados).
Compreensão com perda significa que parte dos dados são descartados quando comprimidos. Nesse caso, isso significaria que as cores de alguns pixels se tornarão diferentes quando você salvar um arquivo comprimido e então carrregá-lo de volta.
Compreensão com perda é um grande problema se você abrir uma image e salvá-la e então abrí-la e salvá-la de novo e de novo, por que cada vez que você salva o arquivo as cores dos pixels muda, mesmo se você não tiver os editado. Existe até um nome para essas mudanças em compreensão JPG: artefatos JPG.
Por esse motivo, você deve evitar salvar imagens que você irá editar mais tarde em formatos com perda como JPG. Editores de imagem avançados, tais como Photoshop, GIMP, Krita, etc., possuem seus próprios formats de image que salvam suas edições de maneira sem-perda. Use esses formatos quando trabalhar com projetos. Export para JPG ou WebP com-perda apenas a imagem terminada que você não planeja alterar mais.
Por outro lado, PNG é um formato sem-perda. Se você abrir e salvar, e abrir e salvar, e abrir e salvar, o mesmo arquivo PNG sem editá-lo, ele permanecerá exatamente o mesmo arquivo PNG. Nenhum dado será perdido.
PNG é tipicamente usado quando você tem uma imagem que possui transparência, principalmente por que JPG não suporta transparência. Ele é usado para pequenos ícones e gráficos por que nessas pequenas imagens a car de cada pixel é muito importante, e JPG poderia fazer os gráficos dos ícones embaçado ou distorcido. Hoje em dia temos WebP, que é capaz de transparência com-perda, mas por ser um novo formato, ele não é tão suportado por aplicativos como os antigos formatos PNG e JPG.
Uma terceira situação ocorre em formatos que suportam apenas cores de 8 bits, como GIF. GIF é sem-perda no sentido que se você abrir e salvar um GIF sem editar, ele provavelmente permanecerá o mesmo arquivo (isso pode depender do seu editor de imagens). Entretanto, para salvar uma imagem como GIF, você precisa reduzir o número de cores dos típicos 3 bytes (24 bits por pixel) para 8 bits por pixel, o que significa que os pixels da imagem só podem ter até 256 cores diferentes únicas.
Deixe um comentário