How to display a picture
-
@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#heightconst QSize MySize = theImage->size();
int h=MySize.height();
etc.
Update:
@wieland already showed ;) -
@Payx
Well You need to convert to text anyway so it will becomeui->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();
} - Thanks but how to return it ?
-
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 ?
-
- 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 - int h = s.width() and work with h thats right ?
-
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
-
@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.
-
@mrjj said in How to display a picture:
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 ? -
- 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.htmlso
QImage img("C:/path/filename.jpg"
becomesQString imagefile = QFileDialog::getOpenFileNames(this, tr("Files"), QDir::currentPath(), tr("*.jpg *.png"));
QImage img(imagefile);Hope that is what you asked about.
-
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
-
@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 ));
-
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 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 -
Thread says how to display a picture
@Payx
Is this the thing?.
correct me if i was wrong.