我正在尝试使用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。有没有人想到任何聪明的捷径可以加快这个过程并避免当前需要复制缓冲区两次的需要?