2017-04-21 36 views
0

我有该代码,我想从计算机导入图像并将其缩放到600x600。你能帮我怎么做吗?如何导入和缩放导入的图像?

QStringList nameFile = QFileDialog::getOpenFileNames(this,tr("Open file"),"C:\\",tr("JPG/PNG files (*.jpg; *.png);;All files (*.*)")); 
if(!nameFile.isEmpty()) 
{ 
    for (int i=0;i<nameFile.count();i++) 
    { 
     string path = nameFile.at(i).toStdString();; 
     ui->listImages->addItem(nameFile.at(i)); 
     temp = new QImage(600,600,QImage::Format_RGB32); 
     temp -> load(QString().fromStdString(path)); 
     pic.push_back(temp); 
    } 
} 

回答

0

试试看看这个代码。 这是为我工作。

//CREATE AN IMAGE OBJECT 
QImage *img = new QImage(); 

//LOAD THE SOURCE IMAGE 
bool value = img->load(QString("C:\\Users\\XXXXXX\\Desktop\\test.png")); 

//SCALE THE IMAGE 
QImage newImage = img->scaled(600, 600); 

//USE IT 
newImage.save("C:\\Users\\XXXXXX\\Desktop\\test1234.png"); 

由于我不知道你的一些变量, 代码的类型大致通过你的代码可以看看下面如图所示(粗略估计....很多,你必须照顾)

QStringList nameFile = QFileDialog::getOpenFileNames(this,tr("Open file"),"C:\\",tr("JPG/PNG files (*.jpg; *.png);;All files (*.*)")); 
if(!nameFile.isEmpty()) 
{ 
    for (int i=0;i<nameFile.count();i++) 
    { 
     QString path = nameFile.at(i); 
     ui->listImages->addItem(nameFile.at(i)); 


     //Do IT HERE 
     QImage img; 
     bool value = img.load(path); 
     QImage newImage = img.scaled(600, 600); 


     pic.push_back(newImage); 
    } 
} 
+0

它正在工作。非常感谢! – IneedYOURhelp

+0

很棒....很高兴帮助你.. – Naidu

-2

看看QImage:transformed完全控制,否则QImage::scaledToWidth一个更容易的旅程。