qpixmap qclipboard并保存图像反转

时间:2018-03-24 13:18:38

标签: c++ qt qpixmap

环境:

Qt 4.7,Mac OS X 10.12.6

问题:

当我保存图像或将其放在剪贴板中,然后将其粘贴到使用Qt 4.7构建的应用程序的OS X 10.12.6下时,生成的图像将垂直反转。我正在使用raster图形模式,因为OS X 10.12已经破坏了raster模式的Qt 4.7工具提示;保存和复制到剪贴板功能已经从10.6.8到10.11正常工作多年,因此在那些OS X版本中我使用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);

以下是我为保存图片所做的工作:

let

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

任何人都可以提供指向本地的指针(意思是Qt类的标准部分)基于Qt,"翻转"像素图的功能?或者我需要写一个吗?

1 个答案:

答案 0 :(得分:0)

这里的答案似乎没问题:

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();