我该如何检测“假”高分辨率图像(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% 准确,但它是自动的,而且速度相当快。

相关内容