打印

在2410的液晶上显示jpg图片

[复制链接]
3621|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhlyp|  楼主 | 2008-4-9 15:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
hall919| | 2008-4-9 15:30 | 只看该作者

看看接口,一般要转换为RGB或YUV,然后写到LCD上去

使用特权

评论回复
板凳
liandao| | 2008-4-9 21:30 | 只看该作者

一个700行代码完成的Jpeg图片解压源码

我以前的帖子:
---------------------------
一个700行代码完成的Jpeg图片解压源码

                  一个700行代码完成的Jpeg图片解压源码
--------------------------------
jpeg2code.exe    把当前目录的print.jpg打印到print.txt
jpeg2code.cpp    jpeg2code.exe的源代码
Jpeg_decode.c    在ARM9裸机平台上测试过的Jpeg解压代码
DECODE.C         Jpeg_decode.c代码的原型,可用TC编译,并在真实DOS下执行
DECODE.EXE       DOS下可执行,看效果,XP 的CMD窗口就不要执行了,本来就不是真实的DOS环境。
print.jpg        测试的图片
print.txt        图片的内容
--------------------------------
    1.JPEG解压的代码不是我写的,因此不要问问关于解压原理什么的。
    2.最初在网络上找到的是DECODE.C这份源代码。我的贡献仅仅在于把这份DOS下的代码移植到ARM的平台上,只要更改是数据宽度定义的问题。见jpeg_decode.C中的#define _INT_   short
    PC上 short / int是32bit宽度的
    而ARM上short是16bit int是32bit的
    3.原有代码编写质量确实不敢说是好的,但厉害的是短短700行的代码就能完成Jpeg解压,比我见过很多别的Jpeg解压代码要简单的多很多,这点我佩服,而且我们这些搞应用的,这个能直接拿来应用,
这是不错。
    4.我的ARM平台是ARM9 我是把该函数用的WINCE的Eboot中做**显示用的。实际测试过的。编译用的是WINCE 的Platform Builder,你们应该可以很简单移植到ADS下编译的。

Jpeg_decode.c 两个调用的函数
extern void LCD_DrawPixel(INT16U x0, INT16U y0, INT8U Pixel_Lbyte, INT8U Pixel_Hbyte);
LCD上显示一个点的函数,这个需要外部来提供,而且LCD的初始化必须完成后才能使用。
extern void EdbgOutputDebugString(const unsigned char *sz, ...);
Debug输出,没什么用,你可以关闭。

对外函数接口
void JpegFileDecode(void)

想换个图片?
用jpeg2code.exe把print.jpg转换诚print.txt,然后提到Jpeg_decode.c中的内容吧。

如果想XP下编译DECODE.C 找DosBox模拟真实的DOS环境,找TC在上面编译吧。
                        
liandao
Email:lycld@163.com
2008/01/24
现在路径:
https://bbs.21ic.com/upfiles/img/20081/2008124134239130.rar

https://bbs.21ic.com/upfiles/img/20081/2008124134239130.rar

https://bbs.21ic.com/club/bbs/list.asp?boardid=11&t=2841709&tp=%u4E00%u4E2A700%u884C%u4EE3%u7801%u5B8C%u6210%u7684Jpeg%u56FE%u7247%u89E3%u538B%u6E90%u7801

使用特权

评论回复
地板
zhlyp|  楼主 | 2008-4-10 09:14 | 只看该作者

楼上的,我正用你的程序呢,呵呵

不过出了不少问题,给你发email了。

我把问题在这也贴一下,希望用过的一起探讨一下

1、程序里几句语句是要获得图片大小的
        case 0xc0ff:
            myseek(1);
            *p = myread(fp, 2);
            imgheight = (*p << 8) + (*p >> 8);
            *p = myread(fp, 2);
            imgwidth = (*p << 8) + (*p >> 8);
 
可我用你的jpeg2code.exe转化图片成为数据后,却发现有的图片中并没有0xc0ff这个值,所以一运行就什么也显示不了,得不到图片的长度。
 
2、我要在液晶上显示一个800*480的图片,所以我用一张800*480的图片转化成数据后(用jpeg2code.exe转化),单步运行的得到的图片的长和宽的数据就不对(上面程序的imgheight和imgwidth)。不过我用你的示例图片来在液晶上显示的话能够得到正确结果,图片的长和宽数据也正确。不明白是什么原因。

有兴趣地可以试一试我上传的图,分别是遇到两个问题时用的图片。

使用特权

评论回复
5
zhlyp|  楼主 | 2008-4-10 09:15 | 只看该作者

两个问题的图片

使用特权

评论回复
6
zhlyp|  楼主 | 2008-4-10 09:17 | 只看该作者

第一个问题的图片

使用特权

评论回复
7
zhlyp|  楼主 | 2008-4-10 09:17 | 只看该作者

奇怪我上传文件怎么老是失败呢?

使用特权

评论回复
8
zhlyp|  楼主 | 2008-4-10 20:35 | 只看该作者

帮帮忙吧各位大哥

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

93

帖子

0

粉丝