将 QImage 的格式从 Grayscale8 转换为 RGB 格式,可以使用 QImage 的 convertToFormat 方法。具体实现如下:
QImage grayscaleToRGB(const QImage& image)
{
if (image.format() != QImage::Format_Grayscale8) {
// 如果输入图像不是 Grayscale8 格式,直接返回原图像
return image;
}
QImage rgbImage(image.width(), image.height(), QImage::Format_RGB888);
for (int y = 0; y < image.height(); ++y) {
for (int x = 0; x < image.width(); ++x) {
int grayValue = qGray(image.pixel(x, y));
rgbImage.setPixelColor(x, y, QColor(grayValue, grayValue, grayValue));
}
}
return rgbImage;
}
使用该函数可以将 Grayscale8 格式的图像转换为 RGB 格式的图像。请注意,这里使用了 qGray 函数来获取灰度值,并将其作为 RGB 值的三个分量。
内容由零声教学AI助手提供,问题来源于学员提问




