Há algum formato de imagem que suporte truncamento de arquivo (além de lwf)?

1

Se você pegar apenas a parte inicial do arquivo jpg ou jp2 ou webp, você obterá a imagem com partes ausentes ou a decodificação falhará completamente.

Quando experimentei o lwf especial do LuraWave, o truncamento de arquivo só diminuiu a qualidade uniformemente (como se a imagem fosse codificada com configurações de qualidade mais baixa inicialmente)

Quais outros formatos de imagem suportam isso, ou seja, permite uma degradação elegante quando a parte final do arquivo está ausente?

A ideia principal é armazenar imagens com alta qualidade e depois reduzir rapidamente a qualidade (e o tamanho do arquivo) pouco a pouco sem recodificar.

    
por Vi. 23.08.2012 / 22:59

2 respostas

0

Não é exatamente o truncamento grosseiro do arquivo, mas algo semelhante pode ser feito com as imagens c44 do djvu:

$ c44 q.ppm q.djvu -bpp 0.05,0.1,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70
$ djvuextract q.djvu BG44=data.iff
BG44=data.iff --> "data.iff" (54286 bytes)
$ djvudump q.djvu  | grep INFO
INFO [10]         DjVu 1023x599, v24, 100 dpi, gamma=2.2
$ djvumake 5.djvu  INFO=1023,599,100 BG44=data.iff:5
$ djvumake 10.djvu INFO=1023,599,100 BG44=data.iff:10
$ djvumake 1.djvu  INFO=1023,599,100 BG44=data.iff:1
$ ls -s --block-size=1 1.djvu 5.djvu 10.djvu 
45056 10.djvu   8192 1.djvu  24576 5.djvu
    
por 24.08.2012 / 01:07
2

Um PNG entrelaçado suporta isso internamente. Eu não sei quão bem a maioria dos visualizadores de imagens lidaria com truncamento puro (isto é, perdendo o IEND chuck que marca o fim do arquivo), mas quando salvos como entrelaçados, as linhas da imagem são salvas em tal ordem que um A versão borrada da imagem pode ser carregada rapidamente e, em seguida, a imagem é refinada lentamente até que toda a imagem seja carregada. Isso é muito útil para carregar imagens em conexões lentas (Dial-Up, 3G), onde você deseja que o usuário possa ver algo rapidamente, em vez de fazê-las esperar para ter uma visão completa do imagem.

Você pode ver isso encontrando uma imagem grande (papel de parede?) e salvando-a como um .png entrelaçado. Carregue o arquivo em um servidor web lento ou use uma ferramenta como o Fiddler para simular uma conexão de rede lenta e tente carregar a imagem em um navegador.

Você primeiro obterá algo como a cada 8ª linha da imagem e, em seguida, obterá todas as 4ª, e depois todas as outras, e, em seguida, obterá todas as linhas restantes da imagem.

    
por 24.08.2012 / 00:06