如何偵測「假」高解析度影像(TIFF,而實際上是 JPEG,故意放大的影像)?

如何偵測「假」高解析度影像(TIFF,而實際上是 JPEG,故意放大的影像)?

在我的工作中,我經常使用來自多個來源的圖像進行印刷行銷,有時當我要求提供高解析度圖像(而不是他們一開始給我的低解析度圖像)時,我會被故意提供相反,有時我可能會懷疑同樣的情況,因為我在背後得到了一個簡單地從JPEG 轉換而來的TIFF。

我知道你可以用音訊檔案來做到這一點檢測假無損 FLAC 檔。

那麼有沒有什麼軟體/工具可以檢測:

  1. 解析度升級(即使更微妙,從中分辨率到高分辨率)。
  2. 從有損格式(如 JPEG)轉換為 TIFF 或 PNG。

或者您對如何進行人工檢查有什麼建議和指示嗎?當然,我的工具之一就是 Photoshop。

答案1

解決你的第二個問題:

如何偵測從有損格式(如 JPEG)到 TIFF 或 PNG 的轉換

判斷影像之前是否經過 JPEG 壓縮的直覺方法是放大在影像上尋找 8x8 像素區塊之間不連續的跡象。如果 JPEG 壓縮率高(低品質),這些問題尤其明顯。

低品質 JPEG
低質量/高壓縮 JPEG 另存為 PNG- 8x8像素塊清晰可見

但如果 JPEG 壓縮率低(高品質),那麼這些區塊可能很難看到...

在此輸入影像描述
高品質/低壓縮 JPEG 另存為 PNG- 8x8像素區塊難以識別

那麼如何判斷這張高品質影像是否在某個時刻經過了 JPEG 壓縮呢? JPEG 壓縮故意丟棄比強度資訊更多的顏色訊息,我們可以使用Photoshop 的 Lab 色彩模式進一步調查。

將影像轉換為 Lab 色彩模式(影像 -> 模式 -> Lab 色彩)。這會將影像從紅色、綠色和藍色通道轉換為 L、a 和 b 通道。

L 通道是亮度通道,本質上是原始影像的灰階版本。 a和b通道是顏色通道,但不是傳統意義上的。此答案不需要完整的解釋,但您可以找到更多信息維基百科

檢查 a 或 b 頻道並尋找 8x8 像素區塊效應。

在此輸入影像描述
上一張影像的「a」頻道- 8x8 像素區塊效應可見,表示JPEG壓縮

如果 a 或 b 通道表現出 8x8 像素區塊效應,則很好地表明影像在過去的某個時刻經過 JPEG 壓縮。

答案2

我參加聚會遲到了,但這是我的幾分錢。

您可以安裝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% 準確,但自動化的且速度相當快。

相關內容