如何将 QImage 中的像素数据转换为另一种格式?

How can I convert pixel data in QImage to another format?

我收到一个 QImage 的实例,其中包含任意 QImage::Format。如何使用我选择的特定 QImage::Format 创建另一个 QImage 实例,以便将实际图像数据从任意格式转换为我的格式?

示例:

QImage convertFormat(const QImage &inputImage, QImage::format outputFormat)
{
    // What comes here?
}

//Usage
QImage converted = convertFormat(mySourceImage, QImage::Format_Grayscale8);

如果可能的话,我正在寻找一种使用 Qt 中现有代码执行此操作的方法(而不是编写我自己的低级别像素格式转换例程)。

为什么不使用convertToFormat?它具有与您请求的几乎相同的语法,尽管它是 QImage 的成员,因此您只需传递格式。