Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QImage,可更改资源图像的背景(png/jpg)_C++_Qimage_Qt5.3 - Fatal编程技术网

C++ QImage,可更改资源图像的背景(png/jpg)

C++ QImage,可更改资源图像的背景(png/jpg),c++,qimage,qt5.3,C++,Qimage,Qt5.3,我可以更改从资源(png、jpg)文件创建的QImage的背景吗 我的试验结果是一个充满背景色的图像。是否有可能更改png/jpg资源文件的透明背景?我是如何做到的,欢迎改进: QPixmap MyIconClass::changeBackground(const QString resource, Qt::GlobalColor backgroundColor) { QImage resSource(resource); QImage destBackground(resSou

我可以更改从资源(png、jpg)文件创建的
QImage
的背景吗


我的试验结果是一个充满背景色的图像。是否有可能更改png/jpg资源文件的透明背景?

我是如何做到的,欢迎改进:

QPixmap MyIconClass::changeBackground(const QString resource, Qt::GlobalColor backgroundColor)
{
    QImage resSource(resource);
    QImage destBackground(resSource.size(), QImage::Format_RGB32);
    destBackground.fill(backgroundColor);
    QPainter p(&destBackground);
    p.setCompositionMode(QPainter::CompositionMode_SourceAtop);
    p.drawImage(0, 0, resSource);
    return QPixmap::fromImage(destBackground);
}

难道你不能将QImage::Format_RGB32传递给QImage的ctor吗?你的意思是使透明度无效吗?好主意,但是我怎样才能设置我想要的背景色呢?
QPixmap MyIconClass::changeBackground(const QString resource, Qt::GlobalColor backgroundColor)
{
    QImage resSource(resource);
    QImage destBackground(resSource.size(), QImage::Format_RGB32);
    destBackground.fill(backgroundColor);
    QPainter p(&destBackground);
    p.setCompositionMode(QPainter::CompositionMode_SourceAtop);
    p.drawImage(0, 0, resSource);
    return QPixmap::fromImage(destBackground);
}