uint8
アルファ値の numpy 配列 (ここでは pickled 配列) をサーフェスに適用しようとしていますが、 ValueError: unsupported colormasks for alpha reference array
.
s = pygame.Surface((100, 100))
s.fill((126, 126, 126)) # make it grey
pxa = pg.surfarray.pixels_alpha(s)
完全なトレースバックは次のとおりです。
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-81-8c19259f8aa5> in <module>()
----> 1 pxa = pg.surfarray.pixels_alpha(s)
/usr/lib/python2.7/dist-packages/pygame/surfarray.pyc in pixels_alpha(surface)
206 return numericsf.pixels_alpha (surface)
207 elif __arraytype == "numpy":
--> 208 return numpysf.pixels_alpha (surface)
209 raise NotImplementedError("surface arrays are not supported")
210
/usr/lib/python2.7/dist-packages/pygame/_numpysurfarray.pyc in pixels_alpha(surface)
295 start = 3
296 else:
--> 297 raise ValueError("unsupported colormasks for alpha reference array")
298
299 array = numpy.ndarray \
ValueError: unsupported colormasks for alpha reference array
docstring には、ピクセルごとのアルファ値を持つpixels_alpha
32 ビットが必要であることが記載されています。Surface
でサーフェスのビットサイズをSurface.get_bitsize
確認したところ、 が返ることを確認しました32
。そうは言っても、ピクセルごとのアルファ値があるかどうかを確認する方法がわかりません。これが問題ではないでしょうか?もしそうなら、どうやって確認しますか?そうでない場合、何が欠けていますか?
ありがとうございました!