在 JPG 文件中嵌入数据而不改变 python 中的图像
Embed a data inside JPG file without altering the image in python
我有 289 字节的数据要嵌入到 jpg 文件中。当然不改变图像。此外,我可以从图像中提取该数据,并且图片仍然是原始的。为了证明原创性,嵌入散文前后图像的哈希值(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.
我自己解决了这个问题并使用下面的代码插入值
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]
Here是exif标签文档,里面描述了数据类型。
And here 是 piexif
库文档。
希望对您有所帮助
我有 289 字节的数据要嵌入到 jpg 文件中。当然不改变图像。此外,我可以从图像中提取该数据,并且图片仍然是原始的。为了证明原创性,嵌入散文前后图像的哈希值(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.
我自己解决了这个问题并使用下面的代码插入值
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]
Here是exif标签文档,里面描述了数据类型。
And here 是 piexif
库文档。
希望对您有所帮助