annotate examples/arraydemo.py @ 457:c7745825439b

trunc fix
author pygame
date Mon, 12 May 2003 14:54:13 +0000
parents b9e0e1261cc5
children dc24519e33d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
115
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
1 import os
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
2 try:
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
3 import pygame
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
4 import Numeric as N
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
5 from pygame.locals import *
300
5696b91aabed new importing
pygame
parents: 175
diff changeset
6 surfarray = pygame.surfarray
5696b91aabed new importing
pygame
parents: 175
diff changeset
7 if not surfarray: raise ImportError
115
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
8 except ImportError:
300
5696b91aabed new importing
pygame
parents: 175
diff changeset
9 raise ImportError, 'Error Importing Pygame/surfarray or Numeric'
115
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
10
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
11
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
12 pygame.init()
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
13 print 'Press the mouse button to advance image.'
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
14 print 'Press the "s" key to save the current image.'
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
15
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
16
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
17 def surfdemo_show(array_img, name):
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
18 "displays a surface, waits for user to continue"
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
19 screen = pygame.display.set_mode(array_img.shape[:2], 0, 32)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
20 surfarray.blit_array(screen, array_img)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
21 pygame.display.flip()
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
22 pygame.display.set_caption(name)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
23 while 1:
352
b9e0e1261cc5 event peek returns obj
pygame
parents: 300
diff changeset
24 e = pygame.event.wait()
115
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
25 if e.type == MOUSEBUTTONDOWN: break
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
26 elif e.type == KEYDOWN and e.key == K_s:
175
7a9d787f2316 image module redone
pygame
parents: 115
diff changeset
27 pygame.image.save(screen, name+'.bmp')
115
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
28 elif e.type == QUIT: raise SystemExit
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
29
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
30
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
31
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
32
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
33 #allblack
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
34 allblack = N.zeros((128, 128))
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
35 surfdemo_show(allblack, 'allblack')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
36
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
37
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
38 #striped
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
39 striped = N.zeros((128, 128, 3))
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
40 striped[:] = (255, 0, 0)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
41 striped[:,::3] = (0, 255, 255)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
42 surfdemo_show(striped, 'striped')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
43
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
44
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
45 #imgarray
175
7a9d787f2316 image module redone
pygame
parents: 115
diff changeset
46 imagename = os.path.join('data', 'arraydemo.bmp')
115
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
47 imgsurface = pygame.image.load(imagename)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
48 imgarray = surfarray.array2d(imgsurface)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
49 surfdemo_show(imgarray, 'imgarray')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
50
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
51
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
52 #flipped
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
53 flipped = imgarray[:,-1:0:-1]
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
54 surfdemo_show(flipped, 'flipped')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
55
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
56
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
57 #scaledown
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
58 scaledown = imgarray[::2,::2]
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
59 surfdemo_show(scaledown, 'scaledown')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
60
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
61
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
62 #scaleup
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
63 size = N.array(imgarray.shape)*2
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
64 scaleup = N.zeros(size)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
65 scaleup[::2,::2] = imgarray
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
66 scaleup[1::2,::2] = imgarray
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
67 scaleup[:,1::2] = scaleup[:,::2]
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
68 surfdemo_show(scaleup, 'scaleup')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
69
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
70
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
71 #redimg
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
72 rgbarray = surfarray.array3d(imgsurface)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
73 redimg = N.array(rgbarray)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
74 redimg[:,:,1:] = 0
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
75 surfdemo_show(redimg, 'redimg')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
76
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
77
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
78 #soften
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
79 soften = N.array(rgbarray)*1
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
80 soften[1:,:] += rgbarray[:-1,:]*8
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
81 soften[:-1,:] += rgbarray[1:,:]*8
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
82 soften[:,1:] += rgbarray[:,:-1]*8
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
83 soften[:,:-1] += rgbarray[:,1:]*8
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
84 soften /= 33
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
85 surfdemo_show(soften, 'soften')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
86
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
87
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
88 #crossfade (50%)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
89 src = N.array(rgbarray)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
90 dest = N.zeros(rgbarray.shape)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
91 dest[:] = 20, 50, 100
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
92 diff = (dest - src) * 0.50
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
93 xfade = src + diff.astype(N.Int)
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
94 surfdemo_show(xfade, 'xfade')
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
95
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
96
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
97
ab99add14539 surfarray bugfixes
pygame
parents:
diff changeset
98 #alldone