在C#中修改JPEG标头

时间:2009-09-11 15:23:15

标签: c# jpeg steganography

我正在尝试将文件打开为字节,将其转换为字符串,修改一些数据(想想Steganography)并将文件转换回字节并将其另存为jpeg。到目前为止,我尝试过的所有内容都将文件转换为字符串时损坏了文件。我已经尝试将其转换为64位字符串,但当然要修改数据有点难:P

有关如何正确执行此操作的任何建议,而不会损坏我的文件?

1 个答案:

答案 0 :(得分:3)

我在C#中没有这个,但在PHP中,你可以看看并适应C#。

http://www.havenard.110mb.com/fotomagica/

这是我的网站,其中有一个工具可以修改JPEG的EXIF数据,并构建“魔术图片”,在缩略图中显示不是真实图片的内容。

它打开JPEG,对其扇区进行切片,然后将其构建回来,忽略不相关的扇区并放置我自定义的EXIF标题。

这是PHP类的源代码: http://www.havenard.110mb.com/fotomagica/class.JpegMapper.php.txt(ExifMapper不完整) http://www.havenard.110mb.com/fotomagica/class.DataMapper.php.txt

您可以在C#中进行研究和重建,如您所见,切片JPEG非常简单。

使用此PHP类(仅限JpegMapper):


$jpg = new JpegMapper('picture.jpg');
$jpg->save_filtered('filtere picture.jpg'); // save removing irrelevant sectors

让任何JPEG更小(有时小得多)都很棒。