在Qt 5中,使用QtMacExtras
模块和QtMac::fromCGImageRef
函数可以轻松地将CGImageRef
转换为QPixmap
。
在Qt 6中,QtMacExtras
被删除了。那里的大多数函数都有显式的替换,除了QtMac::fromCGImageRef
,它“由于缺乏API的已知客户端”而被删除。
事实证明我是那个API的客户,只是不是一个已知的客户。尽管如此,现在我需要在Qt 6中将CGImageRef
转换为QPixmap
。
我在Qt 5.15.2中查看了QtMac::fromCGImageRef
的源代码,这让我找到了一个名为qt_mac_toQImage
的Qt内部函数,但是它使用了大量的内部函数和类,而我在Qt 5中无法访问这些函数和类,更不用说Qt 6了,所以这没有帮助。
我该如何着手进行这种转变呢?
1条答案
按热度按时间9lowa7mx1#
事实证明,在
qt_mac_toQImage
的Qt 5.15实现中使用的许多私有Qt内容适用于除了尝试对QImage进行CoreGraphics渲染之外的情况。一旦我将所有这些部分取出并简化,将CGImageRef转换为QImage或QPixmap的方法就相当简单了:一旦您将
CGImageRef
转换为QImage
,使用QPixmap::convertFromImage
将其转换为QPixmap
就很简单了。