C++ 将QImage传递给方法指针
我正在开发一个QT图像应用程序。现在,我想从一个文件中加载一个图像,显示它,然后单击按钮就可以将其更改为灰度 下面是我对转换函数和图像对象的公开声明C++ 将QImage传递给方法指针,c++,qt,pointers,object,qimage,C++,Qt,Pointers,Object,Qimage,我正在开发一个QT图像应用程序。现在,我想从一个文件中加载一个图像,显示它,然后单击按钮就可以将其更改为灰度 下面是我对转换函数和图像对象的公开声明 public: QImage * MainWindow::greyScale(QImage * origin); QImage myImage; 在我的“打开文件”操作中,我初始化图像并将其显示在这样的标签中 myImage.load(fileName); myImage = myImage.scaled(400, 300); ui->i
public:
QImage * MainWindow::greyScale(QImage * origin);
QImage myImage;
在我的“打开文件”操作中,我初始化图像并将其显示在这样的标签中
myImage.load(fileName);
myImage = myImage.scaled(400, 300);
ui->imageLabel->setPixmap(QPixmap::fromImage(myImage));
QImage newPic = greyScale(myImage);
这是我的灰度转换方法
QImage * MainWindow::greyScale(QImage * origin){
QImage * newImage = new QImage(origin->width(), origin->height(), QImage::Format_ARGB32);
QColor oldColor;
for(int x = 0; x<newImage->width(); x++){
for(int y = 0; y<newImage->height(); y++){
oldColor = QColor(origin->pixel(x,y));
int average = (oldColor.red()+oldColor.green()+oldColor.blue())/3;
newImage->setPixel(x,y,qRgb(average,average,average));
}
}
return newImage;
}
我收到错误“无法将参数1从'QImage'转换为'QImage*”
我需要传递指针、引用或其他什么吗?我尝试了多种组合,但都不起作用。我对语法不太清楚
QImage * origin
请提供帮助!!让我们更改该调用并逐步理解它,为此,您需要注意两件事:方法返回什么,以及它需要什么参数 该方法明确地为新的
QImage
分配空间,并且返回指向该对象的指针
QImage* newPic = greyScale(myImage);
其次,方法需要现有QImage
对象的内存地址(指针)。因此,我们继续给出myImage
的地址:
QImage* newPic = greyScale(&myImage);
就这样。让我们改变这个调用,一步一步地理解它,为此,您需要注意两件事:方法返回什么,以及它需要什么参数 该方法明确地为新的
QImage
分配空间,并且返回指向该对象的指针
QImage* newPic = greyScale(myImage);
其次,方法需要现有QImage
对象的内存地址(指针)。因此,我们继续给出myImage
的地址:
QImage* newPic = greyScale(&myImage);
就是这样。您的方法接收到一个指向QImage的指针作为参数。将其更改为
QImage*main window::greyScale(const QImage&origin)
,或将myImage
声明为指针:QImage*myImage=new QImage(/*一些参数,如果需要的话*/)
您的方法将收到一个指向QImage的指针作为参数。将其更改为QImage*main window::greyScale(const QImage&origin)
,或将myImage
声明为指针:QImage*myImage=new QImage(/*一些参数,如果需要*/);