Source

pygame / examples / pixelarray.py

illume 39e462f 
marcus 2c37905 
illume 4db7880 


marcus 2c37905 


illume 4db7880 

marcus 2c37905 
marcus 1577bcf 
marcus 2c37905 







illume 4db7880 
marcus 2c37905 








marcus b46c373 
marcus 2c37905 




marcus b46c373 
marcus 2c37905 




marcus b46c373 
marcus 2c37905 




marcus b46c373 
marcus 2c37905 





marcus b46c373 
marcus 2c37905 




marcus b46c373 
marcus 2c37905 











marcus 1577bcf 
marcus 2c37905 




marcus 1577bcf 


marcus 78ab04b 
marcus 1577bcf 





marcus 78ab04b 
marcus 1577bcf 


marcus 9e42170 








#!/usr/bin/env python
import os, pygame

pygame.init ()

screen = pygame.display.set_mode ((255, 255))
surface = pygame.Surface ((255, 255))

pygame.display.flip ()

def show (image):
    screen.fill ((255, 255, 255))
    screen.blit (image, (0, 0))
    pygame.display.flip ()
    while 1:
        event = pygame.event.wait ()
        if event.type == pygame.QUIT:
            raise SystemExit
        if event.type == pygame.MOUSEBUTTONDOWN:
            break

# Create the PixelArray.
ar = pygame.PixelArray (surface)
r, g, b = 0, 0, 0
# Do some easy gradient effect.
for y in xrange (255):
    r, g, b = y, y, y
    ar[:,y] = (r, g, b)
del ar
show (surface)

# We have made some gradient effect, now flip it.
ar = pygame.PixelArray (surface)
ar[:] = ar[:,::-1]
del ar
show (surface)

# Every second column will be made blue
ar = pygame.PixelArray (surface)
ar[::2] = (0, 0, 255)
del ar
show (surface)

# Every second row will be made green
ar = pygame.PixelArray (surface)
ar[:,::2] = (0, 255, 0)
del ar
show (surface)

# Manipulate the image. Flip it around the y axis.
surface = pygame.image.load (os.path.join ('data', 'arraydemo.bmp'))
ar = pygame.PixelArray (surface)
ar[:] = ar[:,::-1]
del ar
show (surface)

# Flip the image around the x axis.
ar = pygame.PixelArray (surface)
ar[:] = ar[::-1,:]
del ar
show (surface)

# Every second column will be made white.
ar = pygame.PixelArray (surface)
ar[::2] = (255, 255, 255)
del ar
show (surface)

# Flip the image around both axes, restoring it's original layout.
ar = pygame.PixelArray (surface)
ar[:] = ar[::-1,::-1]
del ar
show (surface)

# Scale it by throwing each second pixel away.
surface = pygame.image.load (os.path.join ('data', 'arraydemo.bmp'))
ar = pygame.PixelArray (surface)
sf2 = ar[::2,::2].make_surface ()
del ar
show (sf2)

# Replace anything looking like the blue color from the text.
ar = pygame.PixelArray (surface)
ar.replace ((60, 60, 255), (0, 255, 0), 0.06)
del ar
show (surface)

# Extract anything which might be somewhat black.
surface = pygame.image.load (os.path.join ('data', 'arraydemo.bmp'))
ar = pygame.PixelArray (surface)
ar2 = ar.extract ((0, 0, 0), 0.07)
sf2 = ar2.surface
del ar, ar2
show (sf2)

# Compare two images.
surface = pygame.image.load (os.path.join ('data', 'alien1.gif'))
surface2 = pygame.image.load (os.path.join ('data', 'alien2.gif'))
ar1 = pygame.PixelArray (surface)
ar2 = pygame.PixelArray (surface2)
ar3 = ar1.compare (ar2, 0.07)
sf3 = ar3.surface
del ar1, ar2, ar3
show (sf3)