今天无意中发现一张图片在
qt
程序中出现问题,
QPix
map
加载jpg图片后执行save操作,返回
失败
了,
失败
原因不知道,往前追踪,发现new
QPix
map
(imagePath)后判断isNull()直接返回true,也就是加载的时候就已经
失败
了,但是从windows的资源管理中查看分明就是一张正常的图片。图片查看器也能正常打开它。偶然灵光一闪,将他的后缀改为了.png,突然就没问题了。想必
QT
依赖后缀名动态使用qjpeg.dll等动态库解析图片。于是写了一段兼容处理的代码
QPix
map
* getRe
这是一个简单的例子,将
QPix
map
对象
保存
为png或者jpg等格式的图片
函数原型:
使用指定的图像文件格式(format )和质量因数(quality )以给定的文件名(fileName)
保存
像素图到文件中。如果成功返回true;否则返回false。
质量因子必须在[0,100]或1的范围内。指定0来获得小的压缩文件,100用于获得大的未压缩文件,-1用于使用默认设置
bool
QPix
map
::save(const QString &fileName, const char *format =
QImage 是为 I/O 以及直接像素访问和操作而设计和优化的。
QPix
map
是为在屏幕上显示图像而设计和优化的。
QBit
map
是一个继承
QPix
map
的便利类,保证深度为1。如果
QPix
map
对象确实是位图,isQBit
map
()函数返回true,否则返回false。
QPicture 类是一个绘制设备,用于记录和重放 QPainter 命令。
QPix
map
对象可以通过值传递,因为
QPix
map
类使用隐式数据共享。
QPix
map
Qt
某小项目开发。开发环境为windows+
Qt
4.7.0+vs2008+mysql 5 ,客户部署环境为Solaris10。
二 问题描述
Qt
在widget界面上绘图,可以将界面绘制的图像
保存
到用户指定的位置。用户通过
保存
文件对话框选择要
保存
图片的路径。在开发环境中,即在windows下
保存
图片功能可用,到了solaris下却不能实现
保存
图片这个功能。
三 问题分
最近在VS2010中用
QT
写一个小的程序,现在出现了一个问题实在不知道怎么解决。。。
用save功能可以得到一个.bmp文件,但是不能读取这个图片的内容,而且每次截图图片的大小都是150K不变。。。整个调试过程都没有报错。
相关代码如下
以下构造函数生成的
QPix
map
对象为空图像:
QPix
map
(); // 构造一个大小为 0 的空图像
以下构造函数生成大小的
QPix
map
对象,但图像数据未初始化:
QPix
map
(const QSize &size); // 构造大小为 size 的图像,图