qpixmap qclipboard和保存图像倒置

qpixmap qclipboard and save image inverted

本文关键字:图像 保存 qclipboard qpixmap      更新时间:2023-10-16

环境:

Qt 4.7, Mac OS X 10.12.6

问题:

当我保存图像,或将其放在剪贴板中,然后将其粘贴到使用 Qt 4.7 构建的应用程序的 OS X 10.12.6 下时,生成的图像会垂直反转。我使用的是native图形模式,因为OS X 10.12破坏了raster模式的Qt 4.7工具提示;保存和复制到剪贴板功能多年来一直正常工作,从 10.6.8 到 10.11,因此在这些 OS X 版本中,我确实使用raster.在这种情况下,剪贴板图像(和保存的图像)不会反转。

这是我为复制到剪贴板所做的工作:

QPixmap pm = QPixmap::grabWindow(uiframePlot->winId());
clipboard->setPixmap( pm, QClipboard::Clipboard);
QApplication::processEvents();

这是我为保存图像所做的工作:

QString qs = QDir::homePath() + scappath;
QPixmap pm = QPixmap::grabWindow(uiframePlot->winId());
pm.save(qs);

我试图找到一个"翻转像素图"功能,但没有运气。我的谷歌福在这里可能不足。我用"Qt 4.7"寻找"反转","翻转"和"转换">

任何人都可以为pixmap提供指向基于Qt的本机(意思是Qt类的标准部分)的"翻转"函数的指针吗?还是我需要写一个?

这是一个似乎工作正常的答案:

QPixmap pm = QPixmap::grabWindow(tmw->ui->frameScope->winId());
if (imageinvert)
{
QPixmap pmf = pm.transformed(QTransform().scale(1, -1));
clipboard->setPixmap( pmf, QClipboard::Clipboard);
}
else
{
clipboard->setPixmap( pm, QClipboard::Clipboard);
}
QApplication::processEvents();