在Mac OS X窗口中显示自定义视频(RGB位图数据)

Woo*_*kie 5 macos rgb cocoa window bitmap

我正在寻找将Mac位图数据快速重复"blit"到Mac OS X窗口内特定区域的最佳方法,以便实时显示来自自定义视频引擎的视频帧.数据采用包含32-BPP位图的简单C风格数组.

在Win32上,我设置了HWND和HDC,将原始数据复制到其内存空间,然后使用BitBlt().在iOS上,我通过UIImageView完成了它,虽然我没有完全评估该方法的性能(在特定的有限情况下真的不需要).我在Mac OS X上没有可用的Cocoa,所以我该怎么办?

我知道有几种糟糕或复杂的方法可以让我实现这一目标,但我希望有经验的人可以指出一些实际上意味着这种用途的东西和/或性能高效,同时又相当简单可靠.

谢谢!

use*_*321 3

我建议使用您的数据创建NSImages 或CGImages ,然后将它们绘制到当前上下文中。

如果您使用NSImage,则需要NSBitmapImageRep使用图像数据创建 。您不需要复制数据,只需将指向它的指针作为参数之一传递给初始化程序即可。

如果使用CGImage,则可以创建一个CGBitmapContextRefusing CGBitmapContextCreate(),并且如上所述,只需传递指向现有图像数据的指针。然后您可以CGImage通过调用从中创建一个CGBitmapContextCreateImage()