Qual é a diferença entre imagem “JPG” / “JPEG” / “PNG” / “BMP” / “GIF” / “TIFF”?

102

Já vi muitos tipos de extensões de imagem, mas nunca entendi as diferenças reais entre elas. Existe algum link que explique claramente suas diferenças?

Existem padrões a serem considerados ao escolher um tipo específico de imagem para usar em um aplicativo? O que usamos para aplicativos da web?

MOZILLA
fonte
Alguém com uma reputação melhor do que eu deveria analisar essas respostas e consolidá-las.
Dana Robinson
Aqui está sua resposta: stackoverflow.com/questions/2336522/…
Chuck Le Butt
Essa pergunta foi encerrada e pode acabar sendo excluída. A mesma resposta está abaixo e deve ser aceita a resposta IMO.
toxalot 01 de

Respostas:

91

Sim. Eles são formatos de arquivo diferentes (e suas extensões de arquivo).

As entradas da Wikipédia para cada um dos formatos fornecem algumas informações:

  • JPEG (ou JPG, para a extensão do arquivo; Joint Photographic Experts Group)
  • PNG (Portable Network Graphics)
  • BMP (bitmap)
  • GIF (Graphics Interchange Format)
  • TIFF (ou TIF, para a extensão do arquivo; Tagged Image File Format)

Os formatos de imagem podem ser separados em três categorias amplas:

  • compressão com perda,
  • compressão sem perdas,
  • descompactado,

Os formatos não compactados ocupam a maior parte dos dados, mas são representações exatas da imagem. Os formatos de bitmap, como BMP, geralmente são descompactados, embora também existam arquivos BMP compactados.

Os formatos de compressão com perdas são geralmente adequados para fotografias. Não é adequado para ilustrações, desenhos e texto, pois os artefatos de compactação da imagem se destacam. A compressão com perdas, como o próprio nome indica, não codifica todas as informações do arquivo, portanto, quando for recuperado em uma imagem, não será uma representação exata do original. No entanto, ele é capaz de compactar imagens de forma muito eficaz em comparação aos formatos sem perdas, pois descarta certas informações. Um excelente exemplo de formato de compactação com perdas é o JPEG.

Os formatos de compactação sem perdas são adequados para ilustrações, desenhos, texto e outros materiais que não teriam uma boa aparência quando compactados com compactação com perdas. Como o nome indica, a compactação sem perdas codificará todas as informações do original, portanto, quando a imagem for descompactada, será uma representação exata do original. Como não há perda de informações na compactação sem perdas, não é possível atingir uma compactação tão alta quanto a compactação com perdas, na maioria dos casos. Exemplos de compactação de imagem sem perdas são PNG e GIF. (GIF permite apenas imagens de 8 bits.)

TIFF e BMP são formatos de "wrapper", pois os dados internos podem depender da técnica de compactação usada. Ele pode conter imagens compactadas e não compactadas.

Quando usar um determinado formato de compactação de imagem realmente depende do que está sendo compactado.

Pergunta relacionada: Compactando imagens grandes de maneira implacável para a web

coobird
fonte
Não acho que BMP seja um formato de 'wrapper' como o TIFF (ou PDF é para esse amtter), nem que possa ser compactado (quer dizer, você pode zipá-lo, mas não contém dados compactados )
ChrisW
2
@ChrisW: BMP permite que o conteúdo do arquivo seja compactado. Acabei de dar uma olhada na página da Wikipedia que mencionei, e ela suporta RLE, PNG e JPEG. (Eu não sabia que ele suportava conteúdo PNG e JPEG - aprendi algo novo!)
coobird
2
O BMP geralmente sofre do mesmo problema que o WAV, ambos nunca são padronizados e, como tal, são abusados ​​em quase tudo que você possa imaginar.
Jasper Bekkers
3
@PhilWhittington Você está confundindo o objeto bitmap com o formato do arquivo. A classe Bitmap salva em muitos formatos diferentes, incluindo BMP, TIFF e PNG - mas salva de um objeto de bitmap (ou seja, os dados de pixel brutos). Não existe PNG dentro de um arquivo BMP.
Chuck Le Butt
1
@Monk msdn.microsoft.com/en-us/library/windows/desktop/… e procure por "biCompression". Essa estrutura C é armazenada byte a byte em um arquivo BMP, portanto, os arquivos BMP também podem suportar esses tipos de compactação. Só porque ninguém os usa, não significa que sejam inválidos.
user253751
78

Você deve estar ciente de alguns fatores-chave ...

Primeiro, existem dois tipos de compressão: sem perdas e com perdas .

Sem perdas significa que a imagem fica menor, mas sem prejuízo para a qualidade. Com perdas significa que a imagem é (ainda) menor, mas em detrimento da qualidade. Se você salvou uma imagem em um formato com perdas repetidamente, a qualidade da imagem ficaria cada vez pior.

Existem também diferentes profundidades de cores (paletas): cor indexada e cor direta .

Com Indexado significa que a imagem só pode armazenar um número limitado de cores (geralmente 256) que são escolhidas pelo autor da imagem, com Direto significa que você pode armazenar muitos milhares de cores que não foram escolhidas pelo autor.


BMP - Lossless / Indexed and Direct

Este é um formato antigo. É sem perdas (nenhum dado de imagem é perdido ao salvar), mas também há pouca ou nenhuma compactação, o que significa que salvar como BMP resulta em tamanhos de arquivo MUITO grandes. Ele pode ter paletas de Indexado e Direto, mas isso é um pequeno consolo. Os tamanhos dos arquivos são tão desnecessariamente grandes que ninguém usa realmente esse formato.

Bom para: Nada realmente. Não há nada em que o BMP seja excelente ou não seja feito melhor por outros formatos.

BMP vs GIF


GIF - Lossless / Indexed only

GIF usa compactação sem perdas, o que significa que você pode salvar a imagem repetidamente e nunca perder nenhum dado. Os tamanhos dos arquivos são muito menores do que BMP, porque uma boa compactação é realmente usada, mas só pode armazenar uma paleta indexada. Isso significa que só pode haver no máximo 256 cores diferentes no arquivo. Parece uma quantia bem pequena, e é.

As imagens GIF também podem ser animadas e ter transparência.

Bom para: logotipos, desenhos de linha e outras imagens simples que precisam ser pequenas. Realmente usado apenas para sites.

GIF vs JPEG


JPEG - com perdas / direto

As imagens JPEGs foram projetadas para reduzir ao máximo as imagens fotográficas detalhadas, removendo informações que o olho humano não notará. Como resultado, é um formato com perdas e salvar o mesmo arquivo continuamente resultará na perda de mais dados com o tempo. Ele tem uma paleta de milhares de cores e é ótimo para fotografias, mas a compactação com perdas significa que é ruim para logotipos e desenhos de linha: eles não apenas parecerão desfocados, mas também terão um tamanho de arquivo maior em comparação com GIFs!

Bom para: Fotografias. Além disso, gradientes.

JPEG vs GIF


PNG-8 - sem perdas / indexado

PNG é um formato mais recente e PNG-8 (a versão indexada do PNG) é realmente um bom substituto para GIFs. Infelizmente, no entanto, ele tem algumas desvantagens: Em primeiro lugar, ele não pode suportar animação como o GIF (bem, pode, mas apenas o Firefox parece suportá-lo, ao contrário da animação GIF que é suportada por todos os navegadores). Em segundo lugar, ele tem alguns problemas de suporte com navegadores mais antigos, como o IE6. Em terceiro lugar, softwares importantes como o Photoshop têm uma implementação muito ruim do formato. (Droga, Adobe!) PNG-8 só pode armazenar 256 cores, como GIFs.

Bom para: A principal coisa que PNG-8 faz melhor do que GIFs é ter suporte para Transparência Alpha.

PNG-8 vs GIF

Observação importante: o Photoshop não oferece suporte para Transparência alfa para arquivos PNG-8. (Droga, Photoshop!) No entanto, existem maneiras de converter arquivos PNG-24 em PNG-8 do Photoshop mantendo sua transparência. Um método é PNGQuant , outro é salvar seus arquivos com o Fireworks .


PNG-24 - Lossless / Direct

PNG-24 é um ótimo formato que combina codificação sem perdas com cores diretas (milhares de cores, assim como JPEG). Nesse aspecto, é muito parecido com o BMP, exceto que o PNG, na verdade, compacta imagens, resultando em arquivos muito menores. Infelizmente, os arquivos PNG-24 ainda serão muito maiores do que JPEGs, GIFs e PNG-8s, então você ainda precisa considerar se realmente deseja usar um.

Embora os PNG-24s permitam milhares de cores enquanto têm compactação, eles não têm como objetivo substituir as imagens JPEG. Uma fotografia salva como PNG-24 provavelmente será pelo menos 5 vezes maior do que uma imagem JPEG equivalente, o que melhora muito pouco na qualidade visível. (Claro, este pode ser um resultado desejável se você não estiver preocupado com o tamanho do arquivo e quiser obter a melhor qualidade de imagem possível.)

Assim como o PNG-8, o PNG-24 também oferece suporte à transparência alfa.

Espero que ajude!

Chuck Le Butt
fonte
8
+1 A única coisa que falta para tornar esta uma resposta completa à pergunta de OP é uma menção para JPG (extensão de arquivo comum para JPEG) e uma seção para TIFF.
toxalot 01 de
2
Também mencionarei que a compactação PNG o torna bom em situações que você não esperava. Por exemplo, gradientes são altamente compactáveis ​​com PNG.
Henry Merriam
27

Geralmente são:

Compactação sem perdas Os algoritmos de compactação sem perdas reduzem o tamanho do arquivo sem perder a qualidade da imagem, embora não sejam compactados em um arquivo tão pequeno quanto um arquivo de compactação com perdas. Quando a qualidade da imagem é avaliada acima do tamanho do arquivo, algoritmos sem perdas são normalmente escolhidos.

Compressão com perdas Os algoritmos de compressão com perdas tiram proveito das limitações inerentes ao olho humano e descartam informações invisíveis. A maioria dos algoritmos de compactação com perdas permite níveis de qualidade variáveis ​​(compactação) e, à medida que esses níveis aumentam, o tamanho do arquivo é reduzido. Nos níveis de compressão mais altos, a deterioração da imagem se torna perceptível como "artefato de compressão". As imagens abaixo demonstram o artefato perceptível de algoritmos de compactação com perdas; selecione a imagem em miniatura para ver a versão em tamanho real.

Cada formato é diferente, conforme descrito abaixo:

Arquivos JPEG JPEG (Joint Photographic Experts Group) são (na maioria dos casos) um formato com perdas; a extensão do nome do arquivo DOS é JPG (outro sistema operacional pode usar JPEG). Quase todas as câmeras digitais podem salvar imagens no formato JPEG, que suporta 8 bits por cor (vermelho, verde, azul) para um total de 24 bits, produzindo arquivos relativamente pequenos. Quando não é muito grande, a compactação não prejudica perceptivelmente a qualidade da imagem, mas os arquivos JPEG sofrem degradação de geração quando editados e salvos repetidamente. As imagens fotográficas podem ser melhor armazenadas em um formato não JPEG sem perdas se forem reeditadas ou se pequenos "artefatos" (manchas causadas pelo algoritmo de compactação do JPEG) forem inaceitáveis. O formato JPEG também é usado como algoritmo de compactação de imagem em muitos arquivos Adobe PDF.

TIFF O TIFF (Tagged Image File Format) é um formato flexível que normalmente salva 8 bits ou 16 bits por cor (vermelho, verde, azul) para totais de 24 bits e 48 bits, respectivamente, usando os nomes de arquivo TIFF ou TIF . A flexibilidade do TIFF é uma benção e uma maldição, porque nenhum leitor lê todos os tipos de arquivo TIFF. TIFFs são com e sem perdas; alguns oferecem compactação sem perdas relativamente boa para imagens de dois níveis (preto e branco). Algumas câmeras digitais podem salvar no formato TIFF, usando o algoritmo de compressão LZW para armazenamento sem perdas. O formato de imagem TIFF não é amplamente suportado por navegadores da web. O TIFF continua amplamente aceito como um padrão de arquivo de fotografia no mercado de impressão. O TIFF pode lidar com espaços de cores específicos do dispositivo, como o CMYK definido por um determinado conjunto de tintas de impressão.

PNG O formato de arquivo PNG (Portable Network Graphics) foi criado como o sucessor gratuito e de código aberto do GIF. O formato de arquivo PNG oferece suporte a truecolor (16 milhões de cores), enquanto o GIF oferece suporte a apenas 256 cores. O arquivo PNG se destaca quando a imagem tem áreas grandes e uniformemente coloridas. O formato PNG sem perdas é mais adequado para editar imagens, e os formatos com perdas, como JPG, são melhores para a distribuição final de imagens fotográficas, porque os arquivos JPG são menores do que os arquivos PNG. Muitos navegadores mais antigos atualmente não suportam o formato de arquivo PNG, no entanto, com o Internet Explorer 7, todos os navegadores contemporâneos suportam totalmente o formato PNG. O entrelaçamento Adam7 permite uma visualização antecipada, mesmo quando apenas uma pequena porcentagem dos dados da imagem foi transmitida.

GIF GIF (Graphics Interchange Format) é limitado a uma paleta de 8 bits ou 256 cores. Isso torna o formato GIF adequado para armazenar gráficos com relativamente poucas cores, como diagramas simples, formas, logotipos e imagens em estilo de desenho animado. O formato GIF suporta animação e ainda é amplamente usado para fornecer efeitos de animação de imagem. Ele também usa uma compactação sem perdas que é mais eficaz quando grandes áreas têm uma única cor e ineficaz para imagens detalhadas ou pontilhadas.

BMP O formato de arquivo BMP (bitmap do Windows) lida com arquivos gráficos dentro do sistema operacional Microsoft Windows. Normalmente, os arquivos BMP são descompactados, portanto, são grandes; a vantagem é sua simplicidade, ampla aceitação e uso em programas do Windows.

Uso para páginas da web / aplicativos da web

A seguir, um breve resumo desses formatos de imagem ao usá-los com uma página / aplicativo da web.

  • PNG é ótimo para IE6 e superior (exigirá um pequeno patch CSS para que a transparência funcione bem). Ótimo para ilustrações e fotos.
  • JPG é ótimo para fotos online
  • GIF é bom para ilustrações quando você não deseja mover para PNG
  • O BMP não deve ser usado online em páginas da web - desperdiça largura de banda


  • Fonte: formatos de arquivo de imagem

    Lucas
    fonte
    5

    Já que outros cobriram as diferenças, irei abordar os usos.

    TIFF é geralmente usado por scanners. Faz arquivos enormes e não é realmente usado em aplicativos.

    O BMP é descompactado e também cria arquivos enormes. Também não é realmente usado em aplicativos.

    GIF costumava estar em toda a web, mas caiu em desuso, uma vez que suporta apenas um número limitado de cores e é patenteado.

    JPG / JPEG é usado principalmente para qualquer coisa que tenha qualidade fotográfica, mas não para texto. A compressão com perdas usada tende a estragar as linhas nítidas.

    PNG não é tão pequeno quanto JPEG, mas não tem perdas, por isso é bom para imagens com linhas nítidas. É de uso comum na web agora.

    Pessoalmente, geralmente uso PNG em todos os lugares que posso. É um bom compromisso entre JPG e GIF.

    Dana Robinson
    fonte
    O BMP pode ser compactado RLE ... Isso não é muito, mas eficaz em imagens simples. É também um formato proprietário (Microsoft).
    PhiLho
    4
    A patente GIF expirou em 2004.
    Dour High Arch
    1
    TIFF é extremamente popular entre pessoas que precisam de qualidade sem perdas (artistas). Também é ótimo para compactar imagens monocromáticas, portanto, é um dos formatos mais populares para software de digitalização de documentos / fax digital.
    Vilx-
    1
    Nas especificações mais recentes, o BMP também permite que o conteúdo seja compactado em PNG ou JPEG.
    Vilx-
    2

    JPG> Joint Photographic Experts Group

    1 As imagens JPG suportam 16 milhões de cores e são mais adequadas para fotografias e gráficos complexos

    2 JPGs não oferecem suporte a transparência.

    PNG> Portable Network Graphics

    1 É usado como uma alternativa ao formato de arquivo GIF quando a tecnologia GIF era protegida por direitos autorais e exigia permissão para uso.

    2 PNGs permitem uma compactação de 5 a 25 por cento maior do que os GIFs e com uma gama mais ampla de cores. PNGs usam entrelaçamento bidimensional, o que os faz carregar duas vezes mais rápido que imagens GIF. ”

    3 Imagem que tem muitas cores ou requer transparência variável avançada, PNG é o tipo de arquivo preferido.

    GIF> Formato de intercâmbio de gráficos

    1 Reduz o número de cores em uma imagem para 256.

    2 GIFs também suportam transparência.

    3 GIFs têm a capacidade única de exibir uma sequência de imagens, semelhante a vídeos, chamada de GIF animado.

    4 Se a imagem tiver poucas cores e não exigir nenhum efeito de transparência alfa avançado, GIF é o caminho a seguir.

    SVG> Gráficos Vetoriais Escaláveis

    1 SVGs é um padrão da web baseado em XML que descreve imagens estáticas e animações em duas dimensões.

    2 O SVG permite criar gráficos e animações de alta qualidade que não perdem detalhes à medida que seu tamanho aumenta / diminui.

    Dev
    fonte
    1

    Esses nomes referem-se a diferentes maneiras de codificar dados de imagem de pixel (JPG e JPEG são a mesma coisa, e TIFF pode apenas incluir um jpeg com alguns metadados adicionais).

    Esses formatos de imagem podem usar algoritmos de compactação diferentes, representações de cores diferentes, capacidade diferente de transportar dados adicionais além da própria imagem, e assim por diante.

    Para aplicativos da web, eu diria que jpeg ou gif é bom o suficiente. Jpeg é usado com mais frequência devido à sua taxa de compressão mais alta, e gif é normalmente usado para animações leves onde um flash (ou algo semelhante) é um over kill, ou lugares onde um fundo transparente é desejado. PNG também pode ser usado, mas não tenho muita experiência com isso. BMP e TIFF provavelmente não são bons candidatos para aplicativos da web.

    PolyThinker
    fonte
    1

    O que Coobird e Gerald disseram.

    Além disso, JPEG é o nome do formato do arquivo. JPG é uma extensão de arquivo abreviada comumente usada para este formato, pois você precisava ter uma extensão de arquivo de 3 letras para sistemas Windows anteriores. Da mesma forma com TIFF e TIF.

    No momento, os navegadores da web exibem apenas arquivos JPEG, PNG e GIF - então, esses são os que podem ser exibidos nas páginas da web.

    Gnudiff
    fonte
    O suporte do navegador não está limitado a JPEG, PNG e GIF: formatos como BMP, ICO, SVG e XBM - entre outros - são nativamente suportados em muitos navegadores.
    scronide
    Justo, eu deveria ter dito que JPEG, GIF e PNG são os formatos suportados pela maioria dos navegadores.
    Gnudiff
    1

    PNG suporta transparência de canal alfa.

    O TIFF pode ter opções estendidas, ou seja, referência geográfica para aplicativos GIS .

    Eu recomendo usar JPEG apenas para fotografias, nunca para imagens como clipart, logotipos, texto, diagramas, arte de linha.

    Favorecer PNG.

    Roger Nelson
    fonte
    1

    Os nomeados são todos gráficos raster, mas além disso não se esqueça dos gráficos vetoriais cada vez mais importantes. Existem tipos compactados e não compactados (mais ou menos), mas são todos sem perdas. Os mais importantes são:

    Xn0vv3r
    fonte
    0

    A extensão do arquivo informa como a imagem é salva. Alguns desses formatos apenas salvam os bits como estão, alguns compactam a imagem de maneiras diferentes, incluindo métodos sem e com perda. A Web pode dizer a você, embora eu saiba que alguns dos pacientes que responderam as perguntas vão descrevê-los aqui.

    A web favorece gif, jpg e png, principalmente. JPEG é o mesmo (ou muito próximo) a jpg.

    gbarry
    fonte
    0

    Para a diferença especificada e uso entre os diversos formatos de imagem, já tenha uma boa discussão acima.

    No entanto, quero acrescentar algo para o processo geral de capturar uma imagem e armazená-la.

    O processo de captura

    Ou você pode dizer o processo de construção (já que podemos desenhar ou fazer fotos com computadores agora). Se você tirar uma fotografia com uma câmera, você já está usando muitos sensores (CCD ou CMOS) e algoritmos (Filtro de Padrão Bayer, Sub-amostragem e quantização, etc.). Também existem coisas como Pixel Formate Color Space. Depois de obter as informações básicas dos pixels, deve haver uma maneira de armazená-los.

    A estrutura básica do arquivo de imagem

    Para armazenar as informações de pixels de um arquivo, precisamos de uma convenção e algoritmos relacionados. Para economizar espaço, há compressão, mas basicamente o problema é codificar os pixels em bytes e decodificar os bytes em pixels para exibição.

    Um arquivo de imagem típico pode ser composto por várias partes, basicamente duas: meta data or file headere pixel data section. A meta datafala sobre o próprio, talvez imagem heighte width, file format, etc. E o pixel data sectioné o verdadeiro sectionque lida com o real picture.

    Armazenamento e exibição

    Como dissemos anteriormente, os arquivos são armazenados no disco rígido e estão em bytes / bits. Assim, os arquivos de imagem não têm prioridade, mas também fluxo de bytes, na verdade. Para exibir, talvez devêssemos obter algo para saber como funciona o monitor. Monitores de PC típicos usam o modelo RGB para exibição.

    Espero que isto ajude:-)

    Lihang Li
    fonte