资源简介
解决QT大图片加载失败问题:QImage加载大图片时,malloc返回NULL,导致图片加载失败。
用QT4.8,高版本改改头文件就可以了。

代码片段和文件信息
#include
#include
#include “imageviewer.h“
#include “qbmploader.h“
#include “qimagescrollarea.h“
#include “QImageContent.h“
//! [0]
ImageViewer::ImageViewer()
{
imageLabel = new QLabel;
imageLabel->setBackgroundRole(QPalette::base);
imageLabel->setSizePolicy(QSizePolicy::Ignored QSizePolicy::Ignored);
imageLabel->setScaledContents(true);
scrollArea = new QImageScrollArea;
setCentralWidget(scrollArea);
createActions();
createMenus();
setWindowtitle(tr(“Image Viewer“));
resize(500 400);
}
//! [0]
//! [1]
void ImageViewer::open()
//! [1] //! [2]
{
QString fileName = QFileDialog::getOpenFileName(this
tr(“Open File“) QDir::currentPath());
if (!fileName.isEmpty()) {
// QImage image;//(fileName);
// StoreBitmap::QBmpLoader loader;
QImageContent* content
= qobject_cast(scrollArea->widget());
if(content!=NULL){
content->setImagePath(fileName);
}
// loader.read(&image);
// if (image.isNull()) {
// QMessageBox::information(this tr(“Image Viewer“)
// tr(“Cannot load %1.“).arg(fileName));
// return;
// }
//! [2] //! [3]
// imageLabel->setPixmap(QPixmap::fromImage(image));
// content->resize(image.width()image.height());
// HBITMAP hBmp = (HBITMAP)LoadImageA( NULL fileName.toLocal8Bit().data()//L“z:\\bg4.bmp“
// IMAGE_BITMAP
// 0 0
// LR_CREATEDIBSECTION|LR_LOADFROMFILE);
// DWORD error = GetLastError();
// QPixmap pixmap = QPixmap::fromWinHBITMAP(hBmp);
// imageLabel->setPixmap(pixmap);
// Deleteobject(hBmp);
//! [3] //! [4]
scaleFactor = 1.0;
printAct->setEnabled(true);
fitToWindowAct->setEnabled(true);
updateActions();
// if (!fitToWindowAct->isChecked())
// imageLabel->adjustSize();
}
}
//! [4]
//! [5]
void ImageViewer::print()
//! [5] //! [6]
{
Q_ASSERT(imageLabel->pixmap());
#ifndef QT_NO_PRINTER
//! [6] //! [7]
QPrintDialog dialog(&printer this);
//! [7] //! [8]
if (dialog.exec()) {
QPainter painter(&printer);
QRect rect = painter.viewport();
QSize size = imageLabel->pixmap()->size();
size.scale(rect.size() Qt::KeepAspectRatio);
painter.setViewport(rect.x() rect.y() size.width() size.height());
painter.setWindow(imageLabel->pixmap()->rect());
painter.drawPixmap(0 0 *imageLabel->pixmap());
}
#endif
}
//! [8]
//! [9]
void ImageViewer::zoomIn()
//! [9] //! [10]
{
scaleImage(1.25);
}
void ImageViewer::zoomOut()
{
scaleImage(0.8);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-25 13:30 imageviewer\
文件 6133 2018-09-25 11:27 imageviewer\Makefile
文件 11589 2018-09-25 11:27 imageviewer\Makefile.Debug
文件 11762 2018-09-25 11:27 imageviewer\Makefile.Release
文件 1891 2017-12-21 15:27 imageviewer\QBmpLoader.h
文件 8550 2018-03-01 09:38 imageviewer\imageviewer.cpp
文件 235 2012-11-23 18:11 imageviewer\imageviewer.desktop
文件 3169 2017-12-19 14:16 imageviewer\imageviewer.h
文件 1059 2017-12-19 14:09 imageviewer\imageviewer.pro
文件 14332 2018-06-20 14:58 imageviewer\imageviewer.pro.user
文件 14432 2018-09-25 13:09 imageviewer\imageviewer.pro.user.2.5pre1
文件 7549 2017-12-18 10:09 imageviewer\imageviewer2.cpp
文件 1156 2017-12-18 10:09 imageviewer\imageviewer2.h
文件 2347 2017-12-19 10:18 imageviewer\main.cpp
文件 266 2018-09-25 11:27 imageviewer\ob
文件 286 2018-09-25 11:27 imageviewer\ob
文件 49768 2018-04-12 20:28 imageviewer\qbmploader.cpp
文件 3477 2018-04-12 20:26 imageviewer\qimagecontent.cpp
文件 823 2018-04-11 16:44 imageviewer\qimagecontent.h
文件 4113 2018-09-25 11:28 imageviewer\qimagescrollarea.cpp
文件 868 2018-09-25 11:27 imageviewer\qimagescrollarea.h
相关资源
- 酒店管理系统基于Qt Creator5)
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- QT酷炫界面开发指南《QmlBook》
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
评论
共有 条评论