擅长:python、mysql、java
<p>还没有完全测试,但我认为是沿着这条路线:</p>
<pre><code>buffer_size = 720 * 288 * ctypes.sizeof(ctypes.c_float)
rgb_buffer = ctypes.create_string_buffer(buffer_size)
ctypes.memmove(rgb_buffer, getRgbBuffer(), buffer_size)
</code></pre>
<p>键是<code>ctypes.memmove()</code>函数。从<a href="http://python.net/crew/theller/ctypes/reference.html" rel="nofollow noreferrer">ctypes documentation</a>:</p>
<blockquote>
<p><strong><code>memmove(dst, src, count)</code></strong><br/>
Same as the standard C memmove library function: copies <code>count</code> bytes from <code>src</code> to <code>dst</code>. <code>dst</code> and <code>src</code> must be integers or ctypes instances that can be converted to pointers.</p>
</blockquote>
<p>运行以上代码片段后,<code>rgb_buffer.value</code>将返回内容,直到第一个<code>'\0'</code>。要将所有字节作为一个python字符串,可以对整个字符串进行切片:<code>buffer_contents = rgb_buffer[:]</code>。</p>