Como encontrar a qualidade JPG?

15

Quando eu salvo um arquivo JPG com o GIMP, posso ajustar a qualidade em que o salvo, de 0 a 100 (eu uso 89). Parece que eu usei um aplicativo para ver o que este número estava no arquivo salvo, mas se eu fiz, eu não posso para a vida de mim descobrir o que era. Alguma sugestão sobre o que usar?

    
por Nathaniel 29.10.2009 / 20:46

6 respostas

22

Uma vez salvo, você não pode mais contar a qualidade.

(Definir a qualidade ao salvar apenas informa ao software quanta perda você considera aceitável, mas uma vez salvo: o que está perdido está perdido. Você precisaria de um ser humano para dizer se algo está bom).

Hmmm, eu acho que estava errado. Eu ainda acho que o acima está correto, mas ImageMagick 's identify prova que estou errado?

identify -verbose myimage.jpg

Image: myimage.jpg
  Format: JPEG (Joint Photographic Experts Group JFIF format)
  Class: DirectClass
  Geometry: 358x240+0+0
  Resolution: 300x300
  [...]
  Compression: JPEG
  Quality: 90
  Orientation: Undefined
  [...]

Eu não sei como a imagem no meu teste foi salva, mas ela não tem nenhum dado EXIF. A qualidade ainda pode ser armazenada na imagem?

    
por 29.10.2009 / 20:55
24

Para adicionar a resposta de Arjan:

O identify do ImageMagick parece realmente olhar dentro da imagem JPEG para adivinhar a configuração de qualidade usada para codificá-lo.

O código-fonte do ImageMagick (cheer for free software :-)) contém as linhas :

/*
  Determine the JPEG compression quality from the quantization tables.
*/
sum=0;
for (i=0; i < NUM_QUANT_TBLS; i++)
{
  if (jpeg_info.quant_tbl_ptrs[i] != NULL)
    for (j=0; j < DCTSIZE2; j++)
      sum+=jpeg_info.quant_tbl_ptrs[i]->quantval[j];

( coders/jpeg.c , linha 843ff. na minha versão recente do código fonte do ImageMagick).

Eu não sei o suficiente sobre o JPEG para realmente entender, mas parece fazer algo como descrito neste artigo:

Determine o fator de qualidade JPEG usando o Visual C # .NET ( link morto a partir de janeiro de 2018; copie em archive.org a partir de 2015 )

Portanto, identify pode realmente determinar a configuração de qualidade de um JPEG apenas a partir do arquivo compactado (embora o resultado nem sempre seja totalmente preciso).

    
por 04.01.2010 / 13:13
5

Como Arjan metioned identify -verbose myimage.jpg fará isso. Como o imagemagick é uma ferramenta CLI, pode ser útil para scripts. A abordagem identify -verbose myimage.jpg | grep ... é preety lenta. Eu recomendo usar o IM como este

identify -format '%Q' myimage.jpg

É massivamente mais rápido.

    
por 04.07.2013 / 14:14
2

JPEGsnoop é uma boa alternativa ao identify do ImageMagick. O download é bastante pequeno e está disponível em formato portátil.

Depois de processar um jpg, você encontrará o "fator de qualidade Aprox" sob o marcador DQT.

    
por 28.09.2015 / 00:47
1

Com a biblioteca ImageMagick ++ , é fácil:

Image magick_image( pathname );
size_t compressionFactor = magick_image.quality(); // 0..100
    
por 15.10.2012 / 16:15
1

O Picasa 3 tem o painel de propriedades que mostra a qualidade do jpeg, mas é um abandonware no momento.

    
por 07.07.2016 / 01:44