采用 libjpeg 库 进行 jpeg 转 bmp

采用 libjpeg 库 进行 jpeg 转 bmp,第1张

我觉得问题出现在这:

while (cinfo.output_scanline <cinfo.output_height)

{

jpeg_read_scanlines(&cinfo, buffer, 1)

fwrite(buffer,row_stride,1,fp)

}

一幅24位色深bmp位图的像素值大小应该是:width * height * 3

如果你的buffer是rgbquda的结构体那也应该是width与height 的双重循环

cinfo.output_scanline <cinfo.output_height 感觉就不够,故而还有很多像素没有被填充,都是初始值0,所以是黑色的!

使用 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就该这么学》。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存