[pygame] Mask problem

2010-08-23 Thread inigo delgado
Hi all:

I have missunderstand something from masks, this is my problem:

I have a program that rounds frames in a minimum rects and saves the
coordinates of them in a file, that way I know where, in a picture, are the
frames of a animation and can get them easily.

I took all the frames of an animation in this way (been an animation the
secuence of images of p.e. a spaceship images turning in Y-axis to go left
or rigth in X-axis)

# Gets all the frames of a animation from the image
def __getFrameImages__(self, image, imagesIndexInY, coords):
indexes = coords.getCoordsInY(imagesIndexInY) # This works fine, the
images are getted and drawed well
for index in indexes:  #
Only to show that I get many subsurfaces from a big surface (a .bmp file)
   self.images += [image.subsurface(index)]

After take all images I make masks for each image that way:

# Makes masks for all the frames
def __makeMasks__(self):
for image in self.images:
mask = pygame.mask.from_surface(image, consts.MAGENTA)
temp =  # LOG
for x in mask.outline(): # LOG
temp += `mask.get_at(x)` # LOG
print `temp` #LOG
self.masks += [mask]

been consts.MAGENTA = 0xFF00FF the key color of the image.

Well, when running it, the output are allways that way:

''

So I undestand that, been no 0's, the mask is all the rect... so I'm doing
something wrong, any ideas?
-- 
Nota: Tildes omitidas para evitar incompatibilidades.

:wq


Re: [pygame] Mask problem

2010-08-23 Thread jug
mask.outline(): Returns a list of points of the outline of the first 
object it comes across in a Mask (docs)
- this method gives you all points that build the outline of an object 
on the mask. Thus, all these
points are set on the mask. If you want to print all pixels of the mask, 
you need to loop over the size:


w, h = mask.get_size()
for x in xrange(w):
for y in xrange(h):
print mask.get_at(x,y),
print #(optional)

Julian


Hi all:

I have missunderstand something from masks, this is my problem:

I have a program that rounds frames in a minimum rects and saves the 
coordinates of them in a file, that way I know where, in a picture, 
are the frames of a animation and can get them easily.


I took all the frames of an animation in this way (been an animation 
the secuence of images of p.e. a spaceship images turning in Y-axis to 
go left or rigth in X-axis)


# Gets all the frames of a animation from the image
def __getFrameImages__(self, image, imagesIndexInY, coords):
indexes = coords.getCoordsInY(imagesIndexInY) # This works 
fine, the images are getted and drawed well
for index in indexes:  
# Only to show that I get many subsurfaces from a big surface (a .bmp 
file)

   self.images += [image.subsurface(index)]

After take all images I make masks for each image that way:

# Makes masks for all the frames
def __makeMasks__(self):
for image in self.images:
mask = pygame.mask.from_surface(image, consts.MAGENTA)
temp =  # LOG
for x in mask.outline(): # LOG
temp += `mask.get_at(x)` # LOG
print `temp` #LOG
self.masks += [mask]

been consts.MAGENTA = 0xFF00FF the key color of the image.

Well, when running it, the output are allways that way:

''

So I undestand that, been no 0's, the mask is all the rect... so I'm 
doing something wrong, any ideas?

--
Nota: Tildes omitidas para evitar incompatibilidades.

:wq




Re: [pygame] Mask problem

2010-08-23 Thread inigo delgado
O thanks, it's true I have test and appears to be well, I will send output
to a file to analize it. Thanks :)

2010/8/23 jug j...@fantasymail.de

 mask.outline(): Returns a list of points of the outline of the first
 object it comes across in a Mask (docs)
 - this method gives you all points that build the outline of an object on
 the mask. Thus, all these
 points are set on the mask. If you want to print all pixels of the mask,
 you need to loop over the size:

 w, h = mask.get_size()
 for x in xrange(w):
 for y in xrange(h):
 print mask.get_at(x,y),
 print #(optional)

 Julian


  Hi all:

 I have missunderstand something from masks, this is my problem:

 I have a program that rounds frames in a minimum rects and saves the
 coordinates of them in a file, that way I know where, in a picture, are the
 frames of a animation and can get them easily.

 I took all the frames of an animation in this way (been an animation the
 secuence of images of p.e. a spaceship images turning in Y-axis to go left
 or rigth in X-axis)

 # Gets all the frames of a animation from the image
def __getFrameImages__(self, image, imagesIndexInY, coords):
indexes = coords.getCoordsInY(imagesIndexInY) # This works fine,
 the images are getted and drawed well
for index in indexes:  #
 Only to show that I get many subsurfaces from a big surface (a .bmp file)
   self.images += [image.subsurface(index)]

 After take all images I make masks for each image that way:

 # Makes masks for all the frames
def __makeMasks__(self):
for image in self.images:
mask = pygame.mask.from_surface(image, consts.MAGENTA)
temp =  # LOG
for x in mask.outline(): # LOG
temp += `mask.get_at(x)` # LOG
print `temp` #LOG
self.masks += [mask]

 been consts.MAGENTA = 0xFF00FF the key color of the image.

 Well, when running it, the output are allways that way:


 ''

 So I undestand that, been no 0's, the mask is all the rect... so I'm doing
 something wrong, any ideas?
 --
 Nota: Tildes omitidas para evitar incompatibilidades.

 :wq





-- 
Nota: Tildes omitidas para evitar incompatibilidades.

:wq