苏泊尔耗的JPEG解码器[一]

本文介绍了作者实现的一个纯C语言的JPEG解码器,不使用汇编和浮点运算,适用于各种平台。解码器支持渐近模式,但不支持DNL动态大小、CMYK格式和数学编码。主要功能通过jpeg_load_from_file函数实现,将JPEG文件加载为HBITMAP。代码包括windows下的主控单元和解码核心,适合有兴趣的开发者参考。
摘要由CSDN通过智能技术生成

长夜漫漫,偶才整出这玩意儿-___-b想想大学时BBS上有个牛人花了一个月弄出MPEG来, 偶连做个jpeg都花了这么长时间。聊以自慰的是还算是啃得比较透了。

原定的要求是:

1.要纯C,不带汇编和C++,便于移植;(话说回来,真要让偶用汇编优化也不是那么容易的事)

2.要支持渐近模式;(云风兄的文档上没有介绍渐近模式,但偶发现实际应用中还是挺多的,比如偶D盘上某个隐藏目录下面就有N多这样的图-___-|||)

3.不使用浮点运算;(想象ing:在51单片机上,在小X王986的6502芯片上,在电饭煲的面板上…无处不显露着superarhow's jpeg的LOGO~~~~~ 流口水ing....)

4.要方便。目前的使用起来就一句话:HBITMAP jpeg_load_from_file(LPCTSTR filename)就OK。当然,自己处理的API还是有的。

目前还没有实现的功能,或者说是遗憾有:

1.不支持DNL动态大小(虽然在代码里面有留,但是没有实际的图实在是难测试)

2.不支持CMYK格式(这种格式少,但也不是没有,以前有做美术的兄弟就发给过偶这种图,记得好像是用PS存的,可现在要找个PS好难)

3.不支持数学编码(估计永远都8会支持了-___-b)

工程不算大,就分篇贴出来了。有兴趣的参考。

windows下的主控单元

jpegwin32.h

***************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值