我知道有很多工具可供选择。我的目标是学习。 所以我可以用fopen()读取一个JPEG文件,我知道这是一个二进制文件。 那又怎样?我知道我可以学习JPEG规范。但它似乎没有说明二进制jpeg文件的结构是什么。
此文件包含零和1 我怎样才能改变这一点,或者我怎么知道哪个比特链意味着什么呢?
我遇到过这个例子:nano jpeg decoder 但是阅读代码非常困难
提前致谢
PS:This princeton guy has done a project on this which provides a good reference
答案 0 :(得分:26)
This页面有很多关于如何处理jpeg文件的信息。此外,您可以在Python中编写jpeg解码器时查看my own attempt。
程序中的短变量名称通常直接对应于标准中的变量。因此,如果您准备好标准,它将会有很大帮助。它被称为ITU-1150,可以在互联网上免费获得。
答案 1 :(得分:13)
http://en.wikipedia.org/wiki/JPEG非常有帮助。
如果您想从更简单的事情开始,请查看PNG。格式基本上是一个标题,后跟一堆可变长度,块,然后是一个zlib流。解压缩会留下几乎原始的像素,但它们已被过滤掉了。不受过滤很容易。