在我的工作中,我经常使用来自多个来源的图像进行印刷营销,有时当我要求提供高分辨率图像(而不是最初他们给我的低分辨率图像)时,我得到的却是故意放大的图像,有时我可能会怀疑他们给了我一个只是背着我从 JPEG 转换而来的 TIFF 文件。
我知道你可以用音频文件来做检测假的无损 FLAC 文件。
那么有没有什么软件/工具可以检测:
- 分辨率升级(即使更细微,从中等分辨率到高分辨率)。
- 从 JPEG 等有损格式转换为 TIFF 或 PNG。
或者你对如何进行人为检查有什么建议和指示吗?我的工具当然是 Photoshop。
答案1
回答你的第二个问题:
如何检测从 JPEG 等有损格式到 TIFF 或 PNG 的转换
判断图像是否曾被 JPEG 压缩的直观方法是放大在图像上寻找 8x8 像素块之间的不连续性迹象。如果 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% 准确,但它是自动的,而且速度相当快。