新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
我又来问问题了,图片太大,开发板out of memory,如何处理!
发帖
回复
返回列表
新帖
7439
阅读
7
回复
我又来问问题了,图片太大,开发板out of memory,如何处理!
[复制链接]
上一主题
下一主题
离线
wangmuhai
UID:84472
注册时间
2009-09-08
最后登录
2017-09-14
在线时间
24小时
发帖
17
搜Ta的帖子
精华
0
金钱
170
威望
27
贡献值
0
好评度
17
访问TA的空间
加好友
用道具
新手上路
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2010-04-13
各位好,现在要用qt做图片播放器,但是现在的图片一般尺寸很大,所以自己从网上下载了一些尺寸很大的图片,几千到一万像素都有,尺寸太大的时候,image load,开发板会out of memory,如何才能处理大图片使之可以被播放,或者什么情况下会预测到out of memory,谢谢了
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
wangmuhai
UID:84472
注册时间
2009-09-08
最后登录
2017-09-14
在线时间
24小时
发帖
17
搜Ta的帖子
精华
0
金钱
170
威望
27
贡献值
0
好评度
17
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
1楼
发表于: 2010-04-13
另外load之前,free看了一下,开发板上还有100M free的,图片大概是10M多,怎么就out of memory了...是不是和image尺寸大小有关系
共
条评分
回复
举报
离线
yangfanxing
UID:80073
注册时间
2009-06-01
最后登录
2011-01-18
在线时间
377小时
发帖
1086
搜Ta的帖子
精华
0
金钱
10911
威望
1101
贡献值
0
好评度
1092
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
2楼
发表于: 2010-04-13
How do you load an Image?
共
条评分
PHPWind好恶心。。。不想看这种界面。。。
回复
举报
离线
wangmuhai
UID:84472
注册时间
2009-09-08
最后登录
2017-09-14
在线时间
24小时
发帖
17
搜Ta的帖子
精华
0
金钱
170
威望
27
贡献值
0
好评度
17
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
3楼
发表于: 2010-04-13
void MediaPreviewForm::playPhoto(QString filename)
{
QFile file(filename);
QImageReader imageReader(filename);
float scale = 1;
//加个判断,如果图像尺寸大于4096,就缩放到4096,可是图像的大小好像没有变(不是指尺寸),这里应该怎么做吗?
if (imageReader.size().width() > MAX_PHOTO_SIZE || imageReader.size().height() > MAX_PHOTO_SIZE)
{
scale = imageReader.size().width() > imageReader.size().height() ?
MAX_PHOTO_SIZE/imageReader.size().width() :
MAX_PHOTO_SIZE/imageReader.size().height();
//QMatrix matrix;
//matrix.scale(scale, scale);
QSize imageSize = imageReader.size();
qDebug()<<"imageSize"<<imageSize;
imageSize.scale(imageSize.width()*scale, imageSize.height()*scale, Qt::KeepAspectRatio);
//imageReader.setFormat("png");
imageSize.scale(MAX_PHOTO_SIZE, MAX_PHOTO_SIZE, Qt::KeepAspectRatio);
imageReader.setScaledSize(imageSize);
}
//qDebug()<<Q_ASSERT(image.load(filename));
image = imageReader.read();
int screenW = qApp->desktop()->size().width();
int screenH = qApp->desktop()->size().height();
float imageW = image.size().width();
float imageH = image.size().height();
scale = scalePhoto(screenW, screenH, imageW, imageH, PLAY_PHOTO);
int scaleW = imageW*scale;
int scaleH = imageH*scale;
/*
QMatrix matrix;
matrix.scale(scale, scale);
image = image.transformed(matrix);
*/
imageLabel->setPixmap(QPixmap::fromImage(image));
imageLabel->setGeometry((screenW - scaleW)/2, (screenH - scaleH)/2, scaleW, scaleH);
imageLabel->show();
update();
}
代码在这里,老大帮我看看,谢谢了
[ 此帖被wangmuhai在2010-04-13 16:14重新编辑 ]
共
条评分
回复
举报
离线
yangfanxing
UID:80073
注册时间
2009-06-01
最后登录
2011-01-18
在线时间
377小时
发帖
1086
搜Ta的帖子
精华
0
金钱
10911
威望
1101
贡献值
0
好评度
1092
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
4楼
发表于: 2010-04-13
看不出什么特别的东东。。。坐等。。。
共
条评分
PHPWind好恶心。。。不想看这种界面。。。
回复
举报
离线
benbenmajia
UID:88244
注册时间
2009-12-01
最后登录
2022-10-10
在线时间
331小时
发帖
1071
搜Ta的帖子
精华
0
金钱
11340
威望
1140
贡献值
0
好评度
1130
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
5楼
发表于: 2010-04-14
调试的时候out of mem是在哪里?
共
条评分
安然.....
回复
举报
离线
wangmuhai
UID:84472
注册时间
2009-09-08
最后登录
2017-09-14
在线时间
24小时
发帖
17
搜Ta的帖子
精华
0
金钱
170
威望
27
贡献值
0
好评度
17
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
6楼
发表于: 2010-04-14
开发板上的信息如下,我想能不能预测到load image会造成out of memory那我就不load,提示无法播放
后来我看源码,QImage.load(image)是使用QImageReader.read(image),然后是使用QImageIOHandler.read(image)
QImageIOHandler里的read函数是纯虚函数,可是查看qimageiohandler.cpp里面,找不到read函数
tango3[pdt]# free
total used free shared buffers
Mem: 191728 92112 99616 0 2608
Swap: 0 0 0
Total: 191728 92112 99616
tango3[pdt]# get key: 000000100a 00 ENTER PDT
get key = 000000100a 00 ENTER PDT:KEYPAD_KEY5:0x01000005:Qt::NoModifier:0x00000000:0
[ItemClicked:3387]:
-----FilelistForm::ItemClicked, 2------
##### DEBUG #### [checkUsbCardReader:451]:[DeviceAutoDetection:] Check usb carder Reader
Set Display Background to 0
[PlayItem:4943]:
-----FilelistForm::PlayItem, 2------
"/media/USB/USB1_Disk1/IMAGES/Pics/pictures/Schmitt_Fingers_HiRes.jpg"
CCCCCCCCCCCCCCCCCCCCCCCCCCCC playphoto
free
total used free shared buffers
Mem: 191728 125712 66016 0 4496
Swap: 0 0 0
Total: 191728 125712 66016
tango3[pdt]# free
total used free shared buffers
Mem: 191728 166688 25040 0 7056
Swap: 0 0 0
Total: 191728 166688 25040
tango3[pdt]# free
total used free shared buffers
Mem: 191728 188304 3424 0 384
Swap: 0 0 0
Total: 191728 188304 3424
tango3[pdt]# printk: 6 messages suppressed.
desktop invoked oom-killer: gfp_mask=0xd0, order=0, oomkilladj=0
Call Trace:
[<8400fdfc>] dump_stack+0x8/0x34
[<84062568>]
out_of_memory
+0x2e0/0x358
[<84064b14>] __alloc_pages+0x3c8/0x3dc
[<840876e4>] cache_alloc_refill+0x37c/0x7d4
[<8408733c>] kmem_cache_alloc+0x74/0xa0
[<8412c650>] nfs_create_request+0x4c/0x1fc
[<8412e6c0>] readpage_async_filler+0xb4/0x238
[<8406790c>] read_cache_pages+0x114/0x168
[<8412e280>] nfs_readpages+0x118/0x1f0
[<84067130>] __do_page_cache_readahead+0x280/0x3a0
[<8405e884>] filemap_nopage+0x2a4/0x4d4
[<84070cdc>] __handle_mm_fault+0x178/0xe24
[<84013f94>] do_page_fault+0x144/0x3c0
[<840097a4>] ret_from_exception+0x0/0x10
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 18, btch: 3 usd: 3 Cold: hi: 6, btch: 1 usd: 0
Active:10587 inactive:445 dirty:0 writeback:0 unstable:0
free:96 slab:649 mapped:21 pagetables:90 bounce:0
DMA free:1536kB min:2032kB low:2528kB high:3040kB active:169392kB inactive:7120kB present:261632kB pages_scanned:67179 all_unreclaimable? yes
lowmem_reserve[]: 0 0
DMA: 0*16kB 2*32kB 1*64kB 1*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB = 1536kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 0kB
Total swap = 0kB
Free swap: 0kB
16384 pages of RAM
0 pages of HIGHMEM
4401 reserved pages
77 pages shared
0 pages swap cached
Out of memory
: kill process 885 (sh) score 1711 or a child
Killed process 1306 (desktop)
在开发板上是这些信息,播放图片前后free可以看出内存的使用情况,然后就out了...
[ 此帖被wangmuhai在2010-04-14 11:50重新编辑 ]
共
条评分
回复
举报
离线
hehui
UID:2095
注册时间
2005-11-24
最后登录
2024-10-30
在线时间
258小时
发帖
572
搜Ta的帖子
精华
0
金钱
5817
威望
620
贡献值
0
好评度
574
访问TA的空间
加好友
用道具
骑士
加关注
发消息
只看该作者
7楼
发表于: 2010-04-19
用指针呢?
共
条评分
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
机械CAD
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选