怎么在Linux系统上显示JPG图片

怎么在Linux系统上显示JPG图片,第1张

使用 FIM 在终端中显示图像

FIM 意即 Fbi IMproved。对于那些不知道的人,Fbi 是指 Linux 中的 frame buffer imageviewer。它使用系统的帧缓冲器直接从命令行显示图像。默认情况下,它能用终端显示 bmp、gif、jpeg、PhotoCD、png、ppm、tiff 和 xwd。对于其他格式,它会尝试使用 ImageMagick 的转换。

FIM 基于 Fbi,它是一款高度可高度定制及脚本化的图像浏览器,非常适合使用 Vim 文本编辑器或 Mutt 等软件的用户。它会以全屏显示图像,并可通过键盘快捷键控制(如调整大小、翻转、缩放)。与 Fbi 不同的是,FIM 是通用的:它可以打开许多文件格式,并且可以在以下视频模式下显示图片:

使用 Linux framebuffer 设备,以图形方式呈现

在 X / Xorg 下,使用 SDL 库,以图形方式呈现

在 X / Xorg 下,使用 Imlib2 库,以图形方式呈现。

在任何文本控制台中使用 AAlib 库呈现为 ASCII 字符画。更详细的Linux知识可参考《Linux就该这么学》。

没有像VC那样被修改了标准的语言,所以可以认为linux下的C语言都是标准的。

这个程序要是所有的代码都自己写的话,会非常复杂的,并且 *** 作系统也不允许你写这样的程序。目前条件下能用的有两种比较简单主流的解决方法。一是调用GTK库函数,二是调用Qt库函数。

按我的思路,启动后程序先显示一个窗口,把图片作为窗口的背景或放入特定控件,5秒钟后,窗口关闭或等待某一信号。这种方法能在GTK下实现,Qt能不能行我没试过(应该能行,都是图形界面程序接口)。

至于代码,我感觉你得自己写,我写的你得改好多才能用,不会GTK/Qt的话可以先学学,有C基础的一看就懂,反正GTK是用标准C写成的,所有调用都是C调用,QT没用过

GTK相关资料:

其实我没有嵌入式开发的经验,但粗略地看了一下,在Paint函数中,嵌套了两层for循环,x和y分别从0向LCD_XSIZE和LCD_YSIZE递增

而上面define的LCD_XSIZE和LCD_YSIZE宏分别定义为320和240,那么“t = t + 3”执行了320 * 240=230400次,而t的最大值为319 * 239 * 3 = 228723, 而这里的传入的ch数组即picture数组只分配了129600,小于228723,所以应该是内存越界造成的段错误(Segmentation fault)

如果没有其他错误,个人觉得吧picture数组的大小改为大于228723 + 2 = 228725应该就可以了

段错误一般是内存异常的保护机制,编译器是无法检测的


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7423737.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存