6

В своей работе я часто работаю с изображениями для печатного маркетинга из нескольких источников, и иногда, когда я просил изображения в высоком разрешении (вместо изначально низкого разрешения, которые они начинают с того, что дают мне), мне давали сознательно вместо этого, увеличенные в размерах, и иногда могут заподозрить то же самое для получения TIFF, который был просто конвертирован из JPEG за моей спиной.

Я знаю, что вы можете сделать это с аудио файлами, чтобы обнаружить поддельные файлы FLAC без потерь.

Итак, есть ли какие-нибудь программные средства / инструменты для обнаружения:

  1. повышение разрешения (даже если оно более тонкое, от среднего до высокого разрешения).
  2. преобразование из формата с потерями как JPEG в TIFF или PNG.

Или у вас есть какие-либо советы и советы о том, как по-человечески попытаться проверить? Среди моих инструментов, конечно же, Photoshop.

2 ответа2

9

Чтобы ответить на ваш второй вопрос:

Как обнаружить преобразование из формата с потерями, такого как JPEG в TIFF или PNG

Визуальный способ определить, было ли изображение ранее сжато в формате JPEG, состоит в увеличении изображения и поиске признаков разрывов между блоками 8x8 пикселей. Это особенно очевидно, если сжатие JPEG было высоким (низкое качество).

JPEG низкого качества
JPEG низкого качества / высокой степени сжатия, сохраненный в формате PNG - хорошо видны блоки 8x8 пикселей

Но если сжатие JPEG было низким (высокое качество), тогда эти блоки могут быть трудно различимы ...


JPEG высокого качества / низкого сжатия, сохраненный в формате PNG - трудно идентифицировать блоки 8x8 пикселей

Так как же определить, было ли это высококачественное изображение сжато в JPEG в какой-то момент? Сжатие JPEG намеренно сбрасывает больше информации о цвете, чем информации об интенсивности, и мы можем использовать цветной режим Photoshop Lab для дальнейшего изучения.

Преобразуйте ваше изображение в цветовой режим Lab (Изображение -> Режим -> Lab Color). Это преобразует изображение из красного, зеленого и синего каналов в каналы L, a и b.

Канал L - это канал Lightness, по сути, версия оригинала в оттенках серого. Каналы a и b являются цветовыми каналами, но не в традиционном смысле. Полное объяснение для этого ответа не требуется, но вы можете найти больше информации в Википедии.

Осмотрите канал a или b и посмотрите на блочность 8x8 пикселей.


'a' канал предыдущего изображения - видимая блочность 8x8 пикселей, указывающая на сжатие JPEG

Если каналы a или b демонстрируют блочность 8x8 пикселей, это очень хороший признак того, что изображение было сжато JPEG в какой-то момент в прошлом.

0

Я опаздываю на вечеринку, но вот мои несколько центов.

Вы можете установить 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% точно, но автоматизировано и достаточно быстро.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .