Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to display a picture
Forum Updated to NodeBB v4.3 + New Features

How to display a picture

Scheduled Pinned Locked Moved Solved General and Desktop
43 Posts 8 Posters 87.4k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    Payx
    wrote on last edited by
    #16

    So if i want to calculate the size of my picture i use :

    QSize QImage::size() const

    The question is : how to use it ? there is no example

    mrjjM 1 Reply Last reply
    0
    • P Payx

      So if i want to calculate the size of my picture i use :

      QSize QImage::size() const

      The question is : how to use it ? there is no example

      mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by mrjj
      #17

      @Payx said in How to display a picture:

      QImage::size()

      It returns a
      http://doc.qt.io/qt-5/qsize.html
      and you can ask it height / width etc
      http://doc.qt.io/qt-5/qsize.html#height

      const QSize MySize = theImage->size();

      int h=MySize.height();

      etc.
      Update:
      @wieland already showed ;)

      1 Reply Last reply
      1
      • P Offline
        P Offline
        Payx
        wrote on last edited by
        #18

        Thanks but how to return it ?

        ""ui->label_3->setText( QString("Size: %1, %2").arg(s.width()).arg(s.height()) );""

        there is not more simple ?

        mrjjM 1 Reply Last reply
        0
        • P Payx

          Thanks but how to return it ?

          ""ui->label_3->setText( QString("Size: %1, %2").arg(s.width()).arg(s.height()) );""

          there is not more simple ?

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #19

          @Payx
          Well You need to convert to text anyway so it will become

          ui->label_3->setText( "Size: " + QString::number(s.width()) +" "+ QString::number(s.width()) );

          Not sure its better.

          • Thanks but how to return it ?
            What we do there is to convert to text and set that text in some label.
            That is not really returning it.

          returning it would be something like

          QSize SomeFunc() {
          return pm.size();
          }

          1 Reply Last reply
          1
          • P Offline
            P Offline
            Payx
            wrote on last edited by
            #20

            Thanks it works. I prefer : ui->label_3->setText( "Size: " + QString::number(s.width()) +" "+ QString::number(s.height()) );
            because i understand all.

            Then if i want to use height and width for other calcul i can use :
            s.width() * 5 ?

            If i want to cut my picture in many square or rectangle i have to do :

            int h = s.width() and work with h thats right ?

            mrjjM 1 Reply Last reply
            0
            • P Payx

              Thanks it works. I prefer : ui->label_3->setText( "Size: " + QString::number(s.width()) +" "+ QString::number(s.height()) );
              because i understand all.

              Then if i want to use height and width for other calcul i can use :
              s.width() * 5 ?

              If i want to cut my picture in many square or rectangle i have to do :

              int h = s.width() and work with h thats right ?

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #21

              @Payx

              • int h = s.width() and work with h thats right ?
                Yes that's a copy of the current width. ( so w is better name ;)
                but its makes the calculation easier to read than using s.width() directly.

              Note to actually cut the image, you can use
              http://doc.qt.io/qt-5/qimage.html#copy

              1 Reply Last reply
              1
              • P Offline
                P Offline
                Payx
                wrote on last edited by
                #22

                Okay !

                but : QImage QImage::copy(const QRect &rectangle = QRect()) const
                with this code we can work only in one rectangle no ?

                for example i thought cut my picture in pixels 4*4 and have a new image with resolution / 4 :

                i have to use a code like this :

                for (i=0,i<s.width()+1,i=i+4)
                for (j=0,j<s.height()+1,j=j+4)

                 end 
                

                end

                mrjjM 1 Reply Last reply
                0
                • P Payx

                  Okay !

                  but : QImage QImage::copy(const QRect &rectangle = QRect()) const
                  with this code we can work only in one rectangle no ?

                  for example i thought cut my picture in pixels 4*4 and have a new image with resolution / 4 :

                  i have to use a code like this :

                  for (i=0,i<s.width()+1,i=i+4)
                  for (j=0,j<s.height()+1,j=j+4)

                   end 
                  

                  end

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #23

                  @Payx

                  int step=4;
                  for (i=0,i<s.width()+1,i=i+step)
                    for (j=0,j<s.height()+1,j=j+step)
                    just use  QImage QImage::copy(int x, int y, int width, int height) const
                  

                  This will generate small images of each 4x4

                  P 1 Reply Last reply
                  1
                  • P Payx

                    I put this "file:///C:/Users/David/Documents/addddd/r.jpg"

                    Yes i added a Qlabel with the .ui and named label (dont worry i changed the name in my code)

                    Pradeep KumarP Offline
                    Pradeep KumarP Offline
                    Pradeep Kumar
                    wrote on last edited by
                    #24

                    @Payx said in How to display a picture:

                    I put this "file:///C:/Users/David/Documents/addddd/r.jpg"

                    Yes i added a Qlabel with the .ui and named label (dont worry i changed the name in my code)

                    A small info, u can also place image in resource file of the project , so no need to worry about absolute path.

                    Pradeep Kumar
                    Qt,QML Developer

                    1 Reply Last reply
                    2
                    • mrjjM mrjj

                      @Payx

                      int step=4;
                      for (i=0,i<s.width()+1,i=i+step)
                        for (j=0,j<s.height()+1,j=j+step)
                        just use  QImage QImage::copy(int x, int y, int width, int height) const
                      

                      This will generate small images of each 4x4

                      P Offline
                      P Offline
                      Payx
                      wrote on last edited by
                      #25

                      @mrjj said in How to display a picture:

                      @Payx

                      int step=4;
                      for (i=0,i<s.width()+1,i=i+step)
                        for (j=0,j<s.height()+1,j=j+step)
                        just use  QImage QImage::copy(int x, int y, int width, int height) const
                      

                      This will generate small images of each 4x4

                      Okay i will test that.

                      I got an other question, with that code : "QImage img("C:/path/filename.jpg");" i have to put the destination of the file (sorry for my english)

                      but if i want to create a file explorer (for example in facebook we can change a picture with a file explorer and choose what picture i want)
                      what can i do ?

                      1 Reply Last reply
                      0
                      • mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by mrjj
                        #26
                        • but if i want to create a file explorer (for example in facebook we can change a picture with a file explorer and choose what picture i want)

                        Im not 100% sure what you ask, but I give a guess:

                        Instead of using a fixed path in the program you can use
                        http://doc.qt.io/qt-5/qfiledialog.html
                        to let user browser and select an image.

                        Like in this example
                        http://doc.qt.io/qt-5/qtwidgets-widgets-imageviewer-example.html

                        so
                        QImage img("C:/path/filename.jpg"
                        becomes

                        QString imagefile = QFileDialog::getOpenFileNames(this, tr("Files"), QDir::currentPath(), tr("*.jpg *.png"));
                        QImage img(imagefile);

                        Hope that is what you asked about.

                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          Payx
                          wrote on last edited by
                          #27

                          I found what i sought :

                          QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open Image"),"/path",tr("Image Files (*.jpg)"));

                          But i got all files, and i just want .jpg for now """"""tr("Image Files (*.jpg)"));"""""""""" dont work ?

                          then i want to put my picture file in a label, but i can't find how to convert a QStringList to a Qimage or Qpixmap

                          mrjjM 1 Reply Last reply
                          0
                          • P Payx

                            I found what i sought :

                            QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open Image"),"/path",tr("Image Files (*.jpg)"));

                            But i got all files, and i just want .jpg for now """"""tr("Image Files (*.jpg)"));"""""""""" dont work ?

                            then i want to put my picture file in a label, but i can't find how to convert a QStringList to a Qimage or Qpixmap

                            mrjjM Offline
                            mrjjM Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on last edited by mrjj
                            #28

                            @Payx
                            it should work with *.jpg.

                            • but i can't find how to convert a QStringList to a Qimage or Qpixmap

                            Oh just use
                            fileName = QFileDialog::getOpenFileName(this,
                            tr("Open Image"), "/", tr("Image Files (*.png *.jpg *.bmp)"));

                            It only returns the 1 filename. ( NOTE THE MISSING s)

                            ui->mylabel->setPixmap( new QPixmap(fileName ));

                            1 Reply Last reply
                            0
                            • P Offline
                              P Offline
                              Payx
                              wrote on last edited by
                              #29

                              I got one error : Expected one specifier before pixmap

                              mrjjM 1 Reply Last reply
                              0
                              • P Payx

                                I got one error : Expected one specifier before pixmap

                                mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on last edited by mrjj
                                #30

                                @Payx
                                the class is QPixmap
                                so its "new QPixmap"

                                setPixmap( new QPixmap(fileName ));

                                Sorry, was just fast code.

                                1 Reply Last reply
                                1
                                • P Offline
                                  P Offline
                                  Payx
                                  wrote on last edited by
                                  #31

                                  Yes i tried too before post but i had one error too, so i post the first error.

                                  The second is :
                                  No matching function for call to 'Qlabel::setPixmap(QPixmap*)"

                                  mrjjM 1 Reply Last reply
                                  2
                                  • P Payx

                                    Yes i tried too before post but i had one error too, so i post the first error.

                                    The second is :
                                    No matching function for call to 'Qlabel::setPixmap(QPixmap*)"

                                    mrjjM Offline
                                    mrjjM Offline
                                    mrjj
                                    Lifetime Qt Champion
                                    wrote on last edited by mrjj
                                    #32

                                    @Payx
                                    Sorry not enough coffee :)

                                    QPixmap pix(fileName );
                                    setPixmap(pix);

                                    1 Reply Last reply
                                    3
                                    • Pradeep KumarP Offline
                                      Pradeep KumarP Offline
                                      Pradeep Kumar
                                      wrote on last edited by Pradeep Kumar
                                      #33

                                      If u are using QImage

                                      m_imageLabel = new QLabel;
                                      QImage imagePixmap;
                                      imagePixmap.load(":/new/prefix1/Images/imageName.extension");
                                      m_imageLabel->setPixmap(QPixmap::fromImage(imagePixmap));
                                      

                                      Or

                                      Only QPixmap

                                      m_imageLabel = new QLabel;
                                      QPixmap imagePixmap;
                                      imagePixmap.load(":/new/prefix1/Images/imageName.extension");
                                      m_imageLabel->setPixmap(imagePixmap);
                                      

                                      imageName.extension can be image.png, image.jpeg.

                                      Pradeep Kumar
                                      Qt,QML Developer

                                      P 1 Reply Last reply
                                      2
                                      • Pradeep KumarP Pradeep Kumar

                                        If u are using QImage

                                        m_imageLabel = new QLabel;
                                        QImage imagePixmap;
                                        imagePixmap.load(":/new/prefix1/Images/imageName.extension");
                                        m_imageLabel->setPixmap(QPixmap::fromImage(imagePixmap));
                                        

                                        Or

                                        Only QPixmap

                                        m_imageLabel = new QLabel;
                                        QPixmap imagePixmap;
                                        imagePixmap.load(":/new/prefix1/Images/imageName.extension");
                                        m_imageLabel->setPixmap(imagePixmap);
                                        

                                        imageName.extension can be image.png, image.jpeg.

                                        P Offline
                                        P Offline
                                        Payx
                                        wrote on last edited by
                                        #34

                                        @Pradeep-Kumar said in How to display a picture:

                                        If u are using QImage

                                        m_imageLabel = new QLabel;
                                        QImage imagePixmap;
                                        imagePixmap.load(":/new/prefix1/Images/imageName.extension");
                                        m_imageLabel->setPixmap(QPixmap::fromImage(imagePixmap));
                                        

                                        Or

                                        Only QPixmap

                                        m_imageLabel = new QLabel;
                                        QPixmap imagePixmap;
                                        imagePixmap.load(":/new/prefix1/Images/imageName.extension");
                                        m_imageLabel->setPixmap(imagePixmap);
                                        

                                        imageName.extension can be image.png, image.jpeg.

                                        U didnt read the thread i think :-).
                                        But thx

                                        @mrjj Lol no problem :-)
                                        Thanks it works i will create an other thread for an other question after

                                        Pradeep KumarP 1 Reply Last reply
                                        2
                                        • Pradeep KumarP Offline
                                          Pradeep KumarP Offline
                                          Pradeep Kumar
                                          wrote on last edited by
                                          #35

                                          Thread says how to display a picture

                                          @Payx
                                          Is this the thing?.
                                          correct me if i was wrong.

                                          Pradeep Kumar
                                          Qt,QML Developer

                                          P 1 Reply Last reply
                                          1

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved