私の仕事では、複数のソースからの印刷マーケティング用の画像を扱うことがよくありますが、高解像度の画像を要求したときに(最初は低解像度の画像を提供するのではなく)、意図的に与えられました。代わりにアップスケールされたものであり、時々、私の後ろでJPEGから単純に変換されたTIFFが与えられているのではないかと疑うかもしれません。
私は知っています オーディオファイルでそれを行うことができます 偽のロスレスFLACファイルを検出します。
したがって、検出するソフトウェア/ツールはありますか?
それとも、人間がチェックしようとする方法についてのアドバイスやアドバイスはありますか?もちろん、私のツールの中にはPhotoshopがあります。
2番目の質問に対処するには:
JPEGからTIFFまたはPNGなどの不可逆形式からの変換を検出する方法
画像が以前にJPEG圧縮されているかどうかを視覚的に確認する方法は、画像をズームインして、8x8ピクセルブロック間の不連続性の兆候を探すことです。これらは、JPEG圧縮が高(低品質)の場合に特に明白です。
PNGとして保存された低品質/高圧縮JPEG-8x8ピクセルブロックがはっきりと見える
しかし、JPEG圧縮が低かった(高品質)場合、これらのブロックは見づらいかもしれません...
PNGとして保存された高品質/低圧縮JPEG-8x8ピクセルブロックの識別が困難
では、この高品質の画像がある時点でJPEG圧縮されているかどうかを確認するにはどうすればよいでしょうか。 JPEG圧縮では、強度情報よりも多くの色情報が意図的に削除されます。Photoshopのラボカラーモードを使用して、さらに調査することができます。
画像をラボカラーモードに変換します([画像]-> [モード]-> [ラボカラー])。これにより、画像が赤、緑、青のチャンネルからL、a、bチャンネルに変換されます。
Lチャネルは明度チャネルであり、基本的に元の画像のグレースケールバージョンです。 aチャネルとbチャネルはカラーチャネルですが、従来の意味ではありません。この回答には完全な説明は必要ありませんが、詳細については Wikipedia を参照してください。
Aまたはbチャネルを検査し、8x8ピクセルのブロック性を探します。
前の画像の「a」チャネル-8x8ピクセルのブロックが表示され、JPEG圧縮を示します
Aチャネルまたはbチャネルのいずれかが8x8ピクセルのブロック性を示す場合、それは画像が過去のある時点でJPEG圧縮されたことを示す非常に良い兆候です。
私はパーティーに遅れていますが、ここに私の数セントがあります。
PHPをインストールできます。 Windows、Linux、OSXなどで利用できます。次に、次のようなテキストファイルを作成できます。
<?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';
}
写真がアップスケールされているかどうかがわかります。 100%正確ではありませんが、自動化されており、適度に高速です。