我正在努力使用 Qt4 将图像打印为 PNG 格式。 下面的代码默认设置为PDF或PS,但无法选择PNG:
void DetectorView::printToFile()
{
// A basic printing function
QPrinter printer;
QPrintDialog dialog(&printer, this);
if (dialog.exec()==QDialog::Accepted) {
QPainter painter(&printer);
this->render(&painter);
std::cout << "INFO [DetectorView::printToFile] Wrote file " << std::endl;
}
else {
std::cout << "INFO [DetectorView::printToFile] Cancelling printer " << std::endl;
}
}
如有任何帮助,我们将不胜感激!
最佳答案
使用此链接:Rendering QWidget to QImage loses alpha-channel ,您可以将小部件呈现为 QImage .
然后,使用 QImageWriter ,您可以将其保存为 png:
// render QWidget to QImage:
QImage bitmap(this->size(), QImage::Format_ARGB32);
bitmap.fill(Qt::transparent);
QPainter painter(&bitmap);
this->render(&painter, QPoint(), QRegion(), QWidget::DrawChildren);
// save QImage to png file:
QImageWriter writer("file.png", "png");
writer.write(bitmap);
注意:提供的链接适用于 Qt5,但这应该适用于 Qt4。
关于c++ - 如何使用Qt4打印成PNG格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38453863/