我正在尝试在 PyQt4 中编写一个视频应用程序,并且我已经使用 Python ctypes 连接到一个旧的遗留视频解码器库。该库为我提供了 32 位 ARGB 数据,我需要将其转换为 QImage。我的工作方式如下:
# Copy the rgb image data from the pointer into the buffer
memmove(self.rgb_buffer, self.rgb_buffer_ptr, self.buffer_size)
# Copy the buffer to a python string
imgdata = ""
for a in self.rgb_buffer:
imgdata = imgdata + a
# Create a QImage from the string data
img = QImage(imgdata, 720, 288, QImage.Format_ARGB32)
问题是ctypes将数据输出为“ ctypes.c_char_Array_829440
”类型,我需要将其转换为python字符串,以便我可以构造一个QImage。我的复制机制目前每张图像需要将近 300 毫秒,因此速度非常慢。该过程的解码和显示部分只需要大约50ms。
谁能想到我可以采取任何巧妙的捷径来加快这个过程并避免像我目前正在做的那样复制缓冲区两次?