如何将二进制文件编码为JPG格式?

时间:2010-07-21 03:16:58

标签: image encoding binary jpeg

我希望能够获得1和0的流并将其转换为jpg可以读取的格式,I.E。假设我编写了一个程序并编译并获得了一个exe,然后通过所述程序从exe中运行了1和0,它将生成一个.jpg。关于我需要做什么的任何提示?我希望它不像我怀疑它那么困难。

更新:假设您拍摄了任何旧图像,并将其归结为(我猜)Raw格式,只有一个和零,现在假设您使用了那些1和0并且以某种方式解码它们将获得什么样的程序(显然不是一个正常运行的),但现在我在想,我们走了另一条道路并拿了一个.exe并以某种格式排列所有的1和0,“图像”看起来像是,有可能看到一张图片,那是我想发现什么。 (我希望这能解释我感兴趣的东西),所以没有格式真的不重要,它可能是我所关心的bmp,​​只是我想看看是否有任何方式在程序中的图像是可以在程序中区分。

3 个答案:

答案 0 :(得分:2)

你在谈论steganography吗?这将采取一些隐藏的消息(可能是一个可执行文件)并将其隐藏在图像文件中。显然,图像文件会膨胀一点,但我认为这就是你所说的。维基百科页面有一些工具,如StegFS和/ MP3Stego

更新

重新阅读你的问题后,你是否只想要一个双色图像,一种颜色代表1,另一种颜色代表0?因此二进制序列0110 1101 1010 1101将生成如下图像:

wbbw
bbwb
bwbw
bbwb

答案 1 :(得分:2)

嗯,“正确”的方法是使用您喜欢的编程语言的JPEG编码库。

如果您想立即开始生成JPEG,您可以使用一个选项让您的程序以PPM(一种简单的基于文本的位图图像格式)对图像进行编码,然后使用{{3}将它转换为JPEG。例如:

foo.exe > out.ppm

现在,out.ppm(从维基百科中窃取)包含:

P3
# The P3 means colors are in ASCII, then 3 columns and 2 rows, then 255 for max color, then RGB triplets
3 2
255
255   0   0     0 255   0     0   0 255
255 255   0   255 255 255     0   0   0

有了这个,你可以运行:

cjpeg -outfile out.jpg out.ppm

这绝不是一种快速或强大的生成JPEG的方法,但它可以帮助您快速入门。

答案 2 :(得分:0)

这听起来很傻,但是通过将扩展名更改为.raw,文件会在photoshop中自动打开(或者在我的情况下是Gimp),你可以看到“位模式”的样子。这就是我的目标。