Como faço para detectar imagens de alta resolução 'falsas' (TIFF quando realmente JPEG, imagens deliberadamente aprimoradas)?

6

Na minha linha de trabalho, muitas vezes trabalho com imagens para marketing de impressão de várias fontes e, ocasionalmente, quando solicito imagens de alta resolução (em vez de inicialmente as de baixa resolução que eles começam me dando), foi dado deliberadamente upscaled em vez disso, e, ocasionalmente, pode suspeitar o mesmo para ser dado um TIFF que foi simplesmente convertido de JPEG nas minhas costas.

Eu sei que você pode fazer isso com arquivos de áudio para detectar arquivos FLAC sem perda.

Então, existem alguns softwares / ferramentas para detectar:

  1. upscaling de resolução (mesmo que mais sutil, de dizer mid-res para hi-res).
  2. conversão de um formato com perdas, como JPEG para TIFF ou PNG.

Ou você tem algum conselho e indicações de como tentar humanamente verificar? Entre minhas ferramentas está o Photoshop, claro.

    
por fixer1234 26.01.2012 / 00:12

2 respostas

9

Para resolver sua segunda pergunta:

Como detectar a conversão de um formato com perdas como JPEG para TIFF ou PNG

Uma maneira visual de saber se uma imagem foi previamente compactada com o formato JPEG é aplicar zoom na imagem e procurar sinais de descontinuidades entre blocos de 8x8 pixels. Isso é particularmente óbvio se a compactação JPEG for alta (baixa qualidade).


Baixaqualidade/AltacompactaçãoJPEGsalvacomoPNG-Blocosde8x8pixelssãoclaramentevisível

MasseacompactaçãoJPEGfoibaixa(altaqualidade),essesblocospodemserdifíceisdever...


Alta qualidade / baixa compactação JPEG salvo como PNG - blocos de 8x8 pixels são difíceis para identificar

Então, como saber se essa imagem de alta qualidade foi JPEG compactada em algum momento? A compactação JPEG elimina deliberadamente mais informações de cor do que as informações de intensidade, e podemos usar o modo de cor Lab do Photoshop para investigar melhor.

Converta a sua imagem para o modo de cor do laboratório (Imagem - > Modo - > Cor do laboratório). Isso converte a imagem dos canais vermelho, verde e azul para os canais L, aeb.

O canal L é o canal Lightness, essencialmente a versão em escala de cinza da imagem original. Os canais a e b são os canais de cores, mas não no sentido tradicional. Uma explicação completa não é necessária para esta resposta, mas você pode encontrar mais informações sobre Wikipedia .

Inspecione o canal a ou b e procure por um bloqueio de 8x8 pixels.


'a' canal da imagem anterior - bloqueios de 8x8 pixels visíveis, indicando compressão JPEG

Se os canais a ou b exibirem blocky de 8x8 pixels, isso é uma indicação muito boa de que a imagem foi JPEG compactada em algum momento no passado.

    
por 26.01.2012 / 04:42
0

Estou atrasado para a festa, mas aqui estão meus poucos centavos.

Você pode instalar o PHP. Está disponível para Windows, Linux, OSX e muito mais. Então você pode criar um arquivo de texto, assim:

<?php
$url = 'http://server.com/image.png';
$data = json_decode(file_get_contents('http://api.rest7.com/v1/image_upscaled.php?url=' . $url));

if (@$data->success !== 1)
{
    die('Function failed');
}
if ($data->current_width !== $data->original_width)
{
   echo 'Upscaled photo';
}
else
{
    echo 'Not upscaled';
}

e ele informará se uma foto foi ampliada ou não. Não é 100% preciso, mas é automatizado e razoavelmente rápido.

    
por 17.06.2017 / 15:38