社区
Linux/Unix社区
帖子详情
使用QT合并图片的问题
ray_earth
2008-12-02 12:07:00
我需要将四个图片a、b、c、d合并成一个图片。
使用的方法是,将四个图片分别用QImage读取,在画到一个大的QImage上。
功能实现了,但是有一个问题:
合并的后的文件大小是四个原文件大小之和的两倍!!
我用windows的图画程序试过了,合并后的大小就跟原来四个图片大小的和差不多。
哪位大人有解决方法吗?跪求!
...全文
1093
11
打赏
收藏
使用QT合并图片的问题
我需要将四个图片a、b、c、d合并成一个图片。 使用的方法是,将四个图片分别用QImage读取,在画到一个大的QImage上。 功能实现了,但是有一个问题: 合并的后的文件大小是四个原文件大小之和的两倍!! 我用windows的图画程序试过了,合并后的大小就跟原来四个图片大小的和差不多。 哪位大人有解决方法吗?跪求!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ray_earth
2008-12-20
打赏
举报
回复
我们交作业的期限到了。所以这个问题就当作遗留问题好了。
感谢之前回复过的好人们!
如果各位能有解决办法了,希望还是能告知我。3x。
^ ^
ray_earth
2008-12-17
打赏
举报
回复
不好意思,最近忙着赶作业。
我的意思是空间变大了,应该是4m的文件变成了8m
猫已经找不回了
2008-12-14
打赏
举报
回复
被楼主无视了,楼主,你的需求到底是什么?不是要调整图片大小吗?
zhao_yong
2008-12-14
打赏
举报
回复
学习,楼主的意思是为何合并后的图片占用的空间是合并前的图片之和的两倍?
ray_earth
2008-12-13
打赏
举报
回复
[Quote=引用 6 楼 once_and_again 的回复:]
QImage img(x,y,z);
unsigned char * combination = img.bits();
[/Quote]
不明白什么意思,能说具体点吗?
once_and_again
2008-12-12
打赏
举报
回复
QImage img(x,y,z);
unsigned char * combination = img.bits();
ray_earth
2008-12-11
打赏
举报
回复
我把代码贴出来。merge()是合并图片,save()是保存图片
void MergeWidget::merge(){
label->clear();
//获取待合并图片的大小
QSize lts = lefttop->image.size();
QSize lbs = leftbottom->image.size();
QSize rts = righttop->image.size();
QSize rbs = rightbottom->image.size();
int tw = lts.width() + rts.width();
int bw = lbs.width() + rbs.width();
int lh = lts.height() + lbs.height();
int rh = rts.height() + rbs.height();
//设置合并后图片的大小
resultImg = QImage(((tw > bw)? tw: bw), ((lh > rh)? lh: rh), QImage::Format_ARGB32);
if(!resultImg.isNull()){
painter = new QPainter(&resultImg);
//在新区域画图
painter->drawImage(0, 0, lefttop->image);
painter->drawImage(lts.width(), 0, righttop->image);
painter->drawImage(0, lts.height(), leftbottom->image);
painter->drawImage(lbs.width(), lts.height(), rightbottom->image);
painter->end();
//根据显示区大小显示合并后的图片
//注:保存后的图片大小为原待合并图大小的和,而非显示图片的大小
QImage displayImg = resultImg.scaled(label->width()-1, label->height()-1, Qt::KeepAspectRatio);
label->setPixmap(QPixmap::fromImage(displayImg));
}
}
/**
* 保存合并后的图片
*/
void MergeWidget::save(){
if(resultImg.isNull())
return;
QString fileName = QFileDialog::getSaveFileName(this, tr("保存图片"), QDir::currentPath(), tr("*.png;;*.jpg)"));
if (!fileName.isEmpty()) {
bool saveOK = resultImg.save(fileName);
if(!saveOK)
QMessageBox::information(this, tr("错误提示"), tr("无法保存 %1.").arg(fileName));
}
}
帅得不敢出门
2008-12-08
打赏
举报
回复
有点奇怪.不知道你是怎么并的.
ray_earth
2008-12-05
打赏
举报
回复
不好意思,是我没说清楚,变成两倍是图片占用的硬盘空间。尺寸大小确实应该是两倍的。
也就是说,四个图片都是1M左右,拼出来的图却有8M多。
degree_37
2008-12-04
打赏
举报
回复
学习~
猫已经找不回了
2008-12-03
打赏
举报
回复
你用QPixmap来调整合成后的图像大小不就可以了吗?下面帖个qt4的例子,qt3的这两个类基本没有变化。
在Qt中进行绘图操作的对位图进行缩放,利用QWMatrix类 可以很轻松的完成此功能,示例代码如下:
QPixmap pm ;
// do something to pm
if ( !pm.isNull() )
{
QWMatrix m;//创建一个QWMatrix类的对象
m.scale(0.5f, 0.5f);//设立一个进行缩小到1/2的变换矩阵
pm = pm.xForm(m);//进行变换操作
}
如何利用
qt
合成
图片
如何利用
qt
合成
图片
,本例主要利用两张
图片
进行合成一张
qt
里的
图片
合成
使用
qt
的枚举类QPainter::CompositionMode,进行两幅
图片
的叠加。
Qt
5(C++)小白变大牛原理与实战之初级篇
1.带领你学习
QT
5/C++,从开发环境(
QT
Creator和VS2015两种)搭建到项目实战,从入门到精通。2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的
问题
及解决方法(可以下载所有的电子课件与源码)。3.本阶段主要完成
Qt
开发环境搭建、基于Widget的图形控件、布局管理、容器类、
QT
事件处理、QSS、QML等几个方面知识的学习4.项目实战部分包括:计算器、CRM、视频播放器、视频加密器、等。5.通过学习
qt
框架,进一步加深了对C++设计模式的理解。可以真正投入到实战中,能做基于
QT
跨平台功能强大的界面程序。----------------------------------------第1章
Qt
开发环境搭建及
使用
(VS2015及
Qt
Creator)第2章
Qt
的HelloWorld(GUI)及剖析第3章
Qt
信号槽
使用
及其原理第4章
Qt
容器类第5章
Qt
窗口基类QWidget第6章
Qt
应用程序主窗口第7章
Qt
基于Widget的控件第8章
Qt
布局管理第9章
Qt
事件第10章 QSS快速入门第11章 Qml快速入门第12章
Qt
项目实战之计算器第13章
Qt
项目实战之信息管理系统第14章
Qt
项目实战之视频播放器第15章
Qt
项目实战之视频加密器第16章
Qt
项目实战之视频转码器第17章
Qt
面试题分析与讲解第18章
Qt
小白是怎么炼成大牛的之中级篇概览
Qt
读写word 导出word生成表格插入
图片
使用
QAxObject类导出word 插入文本
图片
表格,表格
合并
,居中对齐等
Qt
版Word多文档编辑与处理(完整版)
该软件仿照微软的Office Word办公软件,
使用
Qt
开发,具备以下功能: 1.支持多文档同时编辑, 多文档可平铺或层叠显示, 保存的文件格式为htm和html; 2.菜单栏和工具栏具有基本的Word文档功能: a) 文件有新建、打开、保存、打印等功能; b) 文件编辑有撤销、重做、复制、剪切、粘贴的功能; c) 文本编辑格式有:字体(粗体、下划线、斜体)、字体大小、字体颜色、段落(左对齐、居中、右对齐)等.
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章