(紧急求救)linux中 如何高效使用jpeglib 将jpeg图像内容扫描到 buffer中

chenbin200818 2010-08-26 02:55:17
unsigned char* buffer[max];
/*
对buffer分配内存
*/
while (cinfo.output_scanline < jpeg_height)
{
jpeg_read_scanlines(&cinfo,& buffer[i], 1);
i++;
}
对jpeg解压过程中 将扫描到内容读取到buffer中时 发现效率很低
解压一个 宽 4400 高 3000的图片时 while循环 居然用去了10秒,, 有没有办法能高效的执行扫描


求解
...全文
228 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenbin200818 2010-08-26
  • 打赏
  • 举报
回复
Now you can read the decompressed image data by calling jpeg_read_scanlines()
one or more times. At each call, you pass in the maximum number of scanlines
to be read (ie, the height of your working buffer); jpeg_read_scanlines()
will return up to that many lines. The return value is the number of lines
actually read. The format of the returned data is discussed under "Data
formats", above. Don't forget that grayscale and color JPEGs will return
different data formats!
意思是说 可以一次读多行 可是我让它一次读多行 程序就出错
goodluckyxl 2010-08-26
  • 打赏
  • 举报
回复
.....
用pidbuf和纯c不纯c一样的啊
和jpeglib是一样的啊 都是一个库而已啊
jpeg也就是一个解码库啊
下面底层一些图形库也都依赖于这些
像 webkit里面都使用这个哦来decode
chenbin200818 2010-08-26
  • 打赏
  • 举报
回复
楼上的老大 我是用 纯c 写的程序 调用 jpeglib库的 不是gdk ,而且 gdk我从没用过
有没有 更好的方法
goodluckyxl 2010-08-26
  • 打赏
  • 举报
回复
在clutter中封装了一个cogl对象也有new_from_file会有两种
一种使用pixbuf 一种使用quartz库这个我也不是很清楚
这种对象创建在gpu buffer中如果使用图形转换效率非常高
而pixbuf 和 cairo都是内存中操作的依赖于cpu
goodluckyxl 2010-08-26
  • 打赏
  • 举报
回复
这样你先用gdk-pixbuf库的
GdkPixbuf * gdk_pixbuf_new_from_file (const char *filename,
GError **error);
guchar * gdk_pixbuf_get_pixels (const GdkPixbuf *pixbuf);
gdk_pixbuf_get_width ()
gdk_pixbuf_get_height ()
gdk_pixbuf_get_rowstride ()

cairo能直接解析png的而不能搞jpg的
goodluckyxl 2010-08-26
  • 打赏
  • 举报
回复
你等下哦 我好像说错了
我来看下
chenbin200818 2010-08-26
  • 打赏
  • 举报
回复
麻烦5楼能 仔细说吗 我在linux下纯 c 写的程序 gpeglib 了解不是很多 谢谢
goodluckyxl 2010-08-26
  • 打赏
  • 举报
回复
cairo 的surface 直接new_from_file
然后把指针get出来 应该比你那个能快一点吧
chenbin200818 2010-08-26
  • 打赏
  • 举报
回复
你们都起的真早阿 我不行
tietao 2010-08-26
  • 打赏
  • 举报
回复
用内存拷贝函数怎么样,
可以试一下memcpy。
gamemagic 2010-08-26
  • 打赏
  • 举报
回复
我记得有个方法是可以直接把RGB8数据弄出来的
jixingzhong 2010-08-26
  • 打赏
  • 举报
回复
这个效率会这么低吗?

不应该啊
chenbin200818 2010-08-26
  • 打赏
  • 举报
回复
难道真的没有方法 解决吗
chenbin200818 2010-08-26
  • 打赏
  • 举报
回复
难道 帖子又沉了???
内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。

70,035

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧