我有一个 QImage,我需要将它转换为灰度,然后用颜色在其上绘制。我找到了一个 allGray()
和 isGrayScale()
函数来检查图像是否已经是灰度,但没有 toGrayScale()
或类似名称功能。
现在我正在使用这段代码,但它的性能不是很好:
for (int ii = 0; ii < image.width(); ii++) {
for (int jj = 0; jj < image.height(); jj++) {
int gray = qGray(image.pixel(ii, jj));
image.setPixel(ii, jj, QColor(gray, gray, gray).rgb());
}
}
在性能方面,将 QImage 转换为灰度图像的最佳方式是什么?
最佳答案
从 Qt 5.5 开始,您可以调用 QImage::convertToFormat()将 QImage 转换为灰度,如下所示:
QImage image = ...;
image.convertToFormat(QImage::Format_Grayscale8);
关于c++ - 将 QImage 转换为灰度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27949569/