Внедрить данные в файл JPG без изменения изображения в python - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть 289 байтов данных, которые я хочу встроить в файл JPG. Конечно без изменения изображения. Кроме того, я могу извлечь эти данные из изображения, и изображение остается оригинальным. Чтобы доказать оригинальность, значение ha sh (SHA 256) изображения до и после встраивания проб остается неизменным.

Я пробовал использовать библиотеку stegano и piexif. это код, который использует piexif

exif_dict = piexif.load(pathImg + 'testImage.jpg')
exif_dict["thumbnail"] = signature # Signature is the 289 bytes of data
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, pathImg + 'testImage.jpg')

, и я получил ошибку piexif._exceptions.InvalidImageDataError: Given data isn't JPEG.

1 Ответ

0 голосов
/ 12 апреля 2020

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

import piexif

exif_dict = piexif.load('testImageSigned.jpg')
exif_dict["0th"][piexif.ImageIFD.Copyright] = hashValue
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, 'testImageSigned.jpg')

А вот код для извлечения:

exif_dict = piexif.load('testImageSigned.jpg')
hashValue2 = exif_dict["0th"][piexif.ImageIFD.Copyright]

Здесь это документация по тегу exif и там описывается тип данных.

А здесь - это документация piexif библиотеки.

Надеюсь, это поможет вам

...