免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9514 | 回复: 6
打印 上一主题 下一主题

linux下如何显示图片(用c) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-02 20:10 |只看该作者 |倒序浏览
linux下如何显示图片?如果bmp的图片,没有经过压缩,直接拷贝到framebuff就可以显示,但是jpg的和png的图片呢?不是有经过压缩的嘛?需要自己用c代码解压还原成bmp的图片嘛?linux下有没有相关的代码?哪位大虾知道的,告知下。

论坛徽章:
0
2 [报告]
发表于 2010-06-02 20:53 |只看该作者
自己顶下,哪位帅锅,大虾的捧个场啥!

论坛徽章:
0
3 [报告]
发表于 2010-06-11 14:03 |只看该作者
楼主难道想先把jpg图片还原成像素点信息,然后调用内核模块里的显卡驱动,一个一个像素点打印?这两样工作都不简单啊

论坛徽章:
0
4 [报告]
发表于 2010-06-11 14:05 |只看该作者
借助gtk吧,或者直接用cairo库也行

论坛徽章:
0
5 [报告]
发表于 2010-06-14 17:48 |只看该作者
本帖最后由 gohuy 于 2010-06-14 17:53 编辑

用下面函数可以把文件读入GdkPixbuf中
GdkPixbuf * gdk_pixbuf_new_from_file(const char *filename, GError **error);

再用这个函数显示到一个GdkDrawable 上
void gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf, GdkDrawable *drawable, GdkGC *gc,
                                                         int src_x, int src_y, int dest_x, int dest_y, int width, int height,
                                                         GdkRgbDither dither, int x_dither, int y_dither);
最后再把GdkDrawable 显示到屏幕上。

论坛徽章:
0
6 [报告]
发表于 2010-07-12 16:32 |只看该作者
楼主难道想先把jpg图片还原成像素点信息,然后调用内核模块里的显卡驱动,一个一个像素点打印?这两样工作都 ...
zytotc 发表于 2010-06-11 14:03



嗯,基本上就是这个意思,本来公司没有安排我来做,我只是好奇而已,以前是显示bmp的图片,但是比较占空间,现在听说要做成jpeg的。不过好像现在他们已经做出来了,应该就是一些jpeg的库的问题吧,只要有库,应该就可以显示吧,不过最终的显示应该都是把数据一个一个的拷到framebuffer,然后再显示的吧。不过具体的实现我有空了去看看,然后发上来!

论坛徽章:
0
7 [报告]
发表于 2010-07-12 16:35 |只看该作者
谢谢楼上的两位兄弟,因为我们这种小公司做什么都是要考虑成本的,所以不可能把gdk这种东西放进去的,会占很大的空间吧,我想。code里面的东西都是基于framebuffer的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP