精华内容
下载资源
问答
  • QT显示图片

    2014-09-13 16:35:07
    显示图片 使用QT的简单实现显示图片图片放大缩小等
  • qt 显示halcon图片,放大缩小

    千次阅读 2019-02-22 10:11:03
    我是使用qlabel来显示图片的。  1 获取图片  直接读取已有的图片,这是4张不一样图片 HObject himage1[6]; for (int i = 0; i < 4; i++) { QString str = QDir::currentPath() + "/...

    我是使用qlabel来显示图片的。

      1 获取图片

       直接读取已有的图片,这是4张不一样大的图片

    	 HObject himage1[6];
    	 for (int  i = 0; i < 4; i++)
    	  {
    		 QString str = QDir::currentPath() + "/Data/I" + QString::number(i+1) + ".bmp";
    		 HalconCpp::ReadImage(&himage1[i], str.toStdString().c_str());
    	 }

    2  绑定label的id

        HTuple hv_WindowID[6];
    	HTuple hv_WindowID2[6];
        //获取label的id
         MainWndID = (Hlong)this->ui.label->winId();
        //这里的611和441是label的大小,刚好是打开的图像窗口和label一样大
        // 链接label和显示窗口
    	 OpenWindow(0, 0, 611, 441, MainWndID, "visible", "", &hv_WindowID[0]);
    	 MainWndID = (Hlong)this->ui.label_2->winId();
    	 OpenWindow(0, 0, 611, 441, MainWndID, "visible", "", &hv_WindowID[1]);
    	 MainWndID = (Hlong)this->ui.label_7->winId();
    	 OpenWindow(0, 0, 611, 441, MainWndID, "visible", "", &hv_WindowID[2]);
    	 MainWndID = (Hlong)this->ui.label_9->winId();
    	 OpenWindow(0, 0, 611, 441, MainWndID, "visible", "", &hv_WindowID[3]);
    	 MainWndID = (Hlong)this->ui.label_10->winId();
    	 OpenWindow(0, 0, 611, 441, MainWndID, "visible", "", &hv_WindowID[4]);
    	 MainWndID = (Hlong)this->ui.label_11->winId();
    	 OpenWindow(0, 0, 611, 441, MainWndID, "visible", "", &hv_WindowID[5]);
    

    3 确定图片的尺寸并显示

     for (int i = 0; i < 4; i++)
    	 {
    		//获取图片大小
    		 HTuple x, y;
    		 GetImageSize(himage1[i],&x,&y);
            //根据图片确定窗口的显示大小
    		 SetPart(hv_WindowID[i], 0, 0, y, x);
             //根据label的大小完整显示图片
    		 DispObj(himage1[i], hv_WindowID[i]);
    	 }

    重点: OpenWindow(0, 0, 611, 441, MainWndID, "visible", "", &hv_WindowID[0]); 是确定显示窗口的大小

     SetPart(hv_WindowID[i], 0, 0, y, x);是确定显示图片在显示窗口的大小

    4 结果 

     完全显示图片

     

     

    展开全文
  • Qt 显示图片 放大 缩小 移动

    千次阅读 2019-07-28 08:13:32
    现在我们来实现在窗口上显示图片,并学习怎样将图片进行平移,缩放,旋转和扭曲。这里我们是利用QPixmap类来实现图片显示的。 一、利用QPixmap显示图片。 1.将以前的工程文件夹进行复制备份,我们这里将工程文件夹...

    本文章原创于www.yafeilinux.com 转载请注明出处。

    现在我们来实现在窗口上显示图片,并学习怎样将图片进行平移,缩放,旋转和扭曲。这里我们是利用QPixmap类来实现图片显示的。

    一、利用QPixmap显示图片。

    1.将以前的工程文件夹进行复制备份,我们这里将工程文件夹改名为painter05。(以前已经说过,经常备份工程目录,是个很好的习惯)

    2.在工程文件夹的debug文件夹中新建文件夹,我这里命名为images,用来存放要用的图片。我这里放了一张linux.jpg的图片。如下图所示。

    0114-300x173.jpg

     

    3.在Qt Creator中打开工程。(即打开工程文件夹中的.pro文件),如图。

    0214.jpg

    0314-300x218.jpg

     

     

    4.将dialog.cpp文件中的paintEvent()函数更改如下。

    void Dialog::paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        QPixmap pix;
        pix.load(“images/linux.jpg”);
        painter.drawPixmap(0,0,100,100,pix);
    }

    这里新建QPixmap类对象,并为其添加图片,然后在以(0,0)点开始的宽和高都为100的矩形中显示该图片。你可以改变矩形的大小,看一下效果啊。最终程序运行效果如下。

     

    0412-300x215.jpg
    (说明:下面的操作都会和坐标有关,这里请先进行操作,我们在下一节将会讲解坐标系统。)

    二、利用更改坐标原点实现平移。

    Qpainter类中的translate()函数实现坐标原点的改变,改变原点后,此点将会成为新的原点(0,0);

    例如:

    void Dialog::paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        QPixmap pix;
        pix.load(“images/linux.jpg”);
        painter.drawPixmap(0,0,100,100,pix);

        painter.translate(100,100); //将(100,100)设为坐标原点
        painter.drawPixmap(0,0,100,100,pix);
    }

    这里将(100,100)设置为了新的坐标原点,所以下面在(0,0)点贴图,就相当于在以前的(100,100)点贴图。效果如下。

     0512-291x300.jpg
    三、实现图片的缩放。

    我们可以使用QPixmap类中的scaled()函数来实现图片的放大和缩小。

    例如:

    void Dialog::paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        QPixmap pix;
        pix.load(“images/linux.jpg”);
        painter.drawPixmap(0,0,100,100,pix);

        qreal width = pix.width(); //获得以前图片的宽和高
        qreal height = pix.height();

        pix = pix.scaled(width*2,height*2,Qt::KeepAspectRatio);
        //将图片的宽和高都扩大两倍,并且在给定的矩形内保持宽高的比值
        painter.drawPixmap(100,100,pix);
    }

    其中参数Qt::KeepAspectRatio,是图片缩放的方式。我们可以查看其帮助。将鼠标指针放到该代码上,当出现F1提示时,按下F1键,这时就可以查看其帮助了。当然我们也可以直接在帮助里查找该代码。

    0610-300x169.jpg

    这是个枚举变量,这里有三个值,只看其图片就可大致明 白,Qt::IgnoreAspectRatio是不保持图片的长宽比,Qt::KeepAspectRatio是在给定的矩形中保持长宽比,最后一个也 是保持长宽比,但可能超出给定的矩形。这里给定的矩形是由我们显示图片时给定的参数决定的,例如 painter.drawPixmap(0,0,100,100,pix);就是在以(0,0)点为起始点的宽和高都是100的矩形中。

    程序运行效果如下。

    0710-300x292.jpg

    四、实现图片的旋转。

    旋转使用的是QPainter类的rotate()函数,它默认是以原点为中心进行旋转的。我们要改变旋转的中心,可以使用前面讲到的translate()函数完成。

    例如:

    void Dialog::paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        QPixmap pix;
        pix.load(“images/linux.jpg”);
        painter.translate(50,50); //让图片的中心作为旋转的中心
        painter.rotate(90); //顺时针旋转90度
        painter.translate(-50,-50);
    //使原点复原
        painter.drawPixmap(0,0,100,100,pix);
    }

    这里必须先改变旋转中心,然后再旋转,然后再将原点复原,才能达到想要的效果。

    运行程序,效果如下。

     

    0810.jpg
    五、实现图片的扭曲。

    实现图片的扭曲,是使用的QPainter类的shear(qreal sh,qreal sv)函数完成的。它有两个参数,前面的参数实现横行变形,后面的参数实现纵向变形。当它们的值为0时,表示不扭曲。

    例如:

    void Dialog::paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        QPixmap pix;
        pix.load(“images/linux.jpg”);
        painter.drawPixmap(0,0,100,100,pix);
        painter.shear(0.5,0); //横向扭曲
        painter.drawPixmap(100,0,100,100,pix);
    }

    效果如下:

    098.jpg

     

    其他扭曲效果:

    painter.shear(0,0.5); //纵向扭曲                           

    painter.shear(0.5,0.5); //横纵扭曲

    106.jpg             

    116.jpg

     图片形状的变化,其实就是利用坐标系的变化来实现的。我们在下一节中将会讲解坐标系统。这一节中的几个函数,我们可以在其帮助文件中查看其详细解释。

    转载于:https://www.cnblogs.com/hnrainll/archive/2011/05/24/2055766.html

    展开全文
  • Qt label显示图片图片的大小问题

    千次阅读 2018-12-20 18:21:50
    第一种情况,如何图片的小于label时候,则 靠label的左上角显示 第二种情况,如何图片的大于label时候,则裁剪图片大小正好是label,显示在上面 QPixmap pix; pix=(*imageList.at(0)).copy(0,0,label-&gt;width...

    第一种情况,如何图片的小于label时候,则 靠label的左上角显示
    第二种情况,如何图片的大于label时候,则裁剪图片大小正好是label,显示在上面

    QPixmap pix;
    pix=(*imageList.at(0)).copy(0,0,label->width(),label->height());
    label->setAlignment(Qt::AlignLeft);
    label->setPixmap(pix);
    就这四行代码搞定,
    不过思考的过程花的时间还是很多,想到了 QIMageReader,QImage 都可以实现,没有这个快。

    今天就这点收获,一点一点来吧,加油。

    展开全文
  • Qt显示gif图片

    千次阅读 2015-01-01 11:24:10
    QT中要显示GIF图片,不能通过单单的添加部件来完成. 还需要手动的编写程序. 工具:QT Creator 新建一个工程,我们先在designer中,添加一个QLabel部件. 如下图: 将QLabel拉成适当大小. 在类cpp...

    在QT中要显示GIF图片,不能通过单单的添加部件来完成.

    还需要手动的编写程序.

    工具:QT Creator

    新建一个工程,我们先在designer中,添加一个QLabel部件.

    如下图:


    将QLabel拉成适当大小.

    在类cpp函数中添加如下程序:

    复制代码
    #include "widget.h"
    #include
    "ui_widget.h"
    #include
    <QLabel>
    #include
    <QMovie>

    Widget::Widget(QWidget
    *parent) :
    QWidget(parent),
    ui(
    new Ui::Widget)
    {
    ui
    ->setupUi(this);
    QMovie
    *movie = new QMovie("D:/Project/Qt/testclass/2.gif");
    ui
    ->label->setMovie(movie);
    movie
    ->start();
    }

    Widget::
    ~Widget()
    {
    delete ui;
    }
    复制代码


    如下图:



    这里要注意QMovie中的路径名:"D:/Project/Qt/testclass/2.gif" 这里的路径斜杠和WINDOWS下是相反的.WINDOWS下默认是反斜杠.

    编译,运行就没有问题,就会看到GIF文件在播放了.

    如下图:



    当文档GIF图片显示:

    复制代码
    #include <QtGui/QApplication>
    #include
    <QLabel>
    #include
    <QMovie>

    int main(int argc,char *argv[])
    {
    QApplication app(argc,argv);

    QLabel
    *label = new QLabel();
    QMovie
    *movie = new QMovie("D:/Project/Qt/firstQT/2.gif");
    label
    ->setMovie(movie);
    movie
    ->start();
    label
    ->show();

    return app.exec();
    }
    展开全文
  • QT显示GIF图片

    2014-12-12 16:22:00
    QT中要显示GIF图片,不能通过单单的添加部件来完成. 还需要手动的编写程序. 工具:QT Creator 新建一个工程,我们先在designer中,添加一个QLabel部件. 如下图: 将QLabel拉成适当大小. 在类cpp函数中添加如下...
  • 请教各位大佬,有没有人用Qt做过这中类似于windows的查看图片,当前显示的列数和行数会随着窗口的变化而动态变化?还有就是Qt如何去加载大量的图片(大概有7,8000张的样子,每张大小不到1K),支持滚动条滑动查看,尽...
  • qt开发中很容易遇到用QPixmap绘制图片无法显示的问题,而图片却能在windows或者第三方工具下正常显示, 原因部分是因为图片后缀被修改了,这种情况又无法去通过改回后缀名来避免。 因此,可以在读写文件的时候,...
  • 整理Qt例程中的svg图片显示,将显示图片放在label控件上(重写事件过滤器方法,参照料此方法可放在其他控件上),环境为ubuntu16.04 + Qt5.6.1,在win+Qt环境下程序工程也可打开编译(亲测)。
  • qt显示大图片时速度很慢怎么处理

    千次阅读 2019-07-16 21:46:40
    qt显示大图片时速度很慢怎么办 QImagemyImage(pBuffer,Width,Height,QImage::Format_RGB888); QPixmappixmap=QPixmap::fromImage(myImage); ui->displayLabel->setPixmap(pixmap);</span> 我是在...
  • 由于后面的图像处理需要UI,OpenCV自带也不怎么会,MFC实在懒得学的。听同学说Qt不错,就用Qt做UI了。 本文主要介绍三个内容:在Qt Creator中使用OpenCV2、Qt中自适应显示图片
  • 有关Qt显示图片的问题问题描述解决过程解决办法参考博客 问题描述 想设置图片随着Qt界面的变化而改变大小 解决过程 Qt显示设置成固定大小 问题:看起来很别扭 将最大化和最小化分别设定一个固定值 问题:随意改变...
  • Qt显示图片时,图片自适应窗口大小,有两种方法: 1、以窗口的大小来显示图片: QImage img; ui->label->setPixmap(QPixmap::fromImage(img.scaled(ui->label->size()))); 2、将图片平铺窗口 ...
  • Linux QT 图片显示

    2013-09-16 19:28:23
    QT程序能够在Linux系统平台显示特定的图片,其图片的大小、格式等信息都可以根据实际需求进行更改。
  • Qt QGraphicsView显示图片

    千次阅读 2020-11-19 09:18:15
    Qt显示图片我所知道的有三种方式 1.QLabel显示图片 使用手动添加的ui控件QLabel显示图片。这种方式把图片显示出来,放大缩小等操作并不是很方便。 QImage *image = new QImage; image->load(图片路径);//QString...
  • 如题: mainwindow.ui ui文件随便建立一个Qlabel控件就行 头文件 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow>...QtGui> #include <QLabel>...
  • 最近这几天因为一个课程作业,,,需要用qt+vs+opencv编写一个软件,,,烦死了,今天发的帖子关于显示图片的,由于时间不充裕,关于qt设计登录界面和实时显示时钟的功能过几天分享。 也可以加我QQ:936874728交流,...
  • 这篇文章是在这个基础上进行讨论的谈一谈分别利用opencv、Qt、matlab动态显示图片的实现 其实就是想找一种更加合适的方法进行图片的放大缩小以及动态显示。 这个是效果图   我把项目命名为Qtmline,因为之前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 532
精华内容 212
关键字:

qt显示大图片