def test_array_properties(self):
# itemsize, ndim, shape, and strides.
for bpp in [1, 2, 3, 4]:
sf = pygame.Surface ((2, 2), 0, bpp * 8)
ar = pygame.PixelArray (sf)
self.assertEqual (ar.itemsize, bpp)
for shape in [(4, 16), (5, 13)]:
w, h = shape
sf = pygame.Surface (shape, 0, 32)
bpp = sf.get_bytesize ()
pitch = sf.get_pitch ()
ar = pygame.PixelArray (sf)
self.assertEqual (ar.ndim, 2)
self.assertEqual (ar.shape, shape)
self.assertEqual (ar.strides, (bpp, pitch))
ar2 = ar[::2,:]
w2 = len(([0] * w)[::2])
self.assertEqual (ar2.ndim, 2)
self.assertEqual (ar2.shape, (w2, h))
self.assertEqual (ar2.strides, (2 * bpp, pitch))
ar2 = ar[:,::2]
h2 = len(([0] * h)[::2])
self.assertEqual (ar2.ndim, 2)
self.assertEqual (ar2.shape, (w, h2))
self.assertEqual (ar2.strides, (bpp, 2 * pitch))
ar2 = ar[1]
self.assertEqual (ar2.ndim, 1)
self.assertEqual (ar2.shape, (h,))
self.assertEqual (ar2.strides, (pitch,))
ar2 = ar[:,1]
self.assertEqual (ar2.ndim, 1)
self.assertEqual (ar2.shape, (w,))
self.assertEqual (ar2.strides, (bpp,))
评论列表
文章目录