mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#
 | 
						|
# The Python Imaging Library.
 | 
						|
# $Id$
 | 
						|
#
 | 
						|
# sequence support classes
 | 
						|
#
 | 
						|
# history:
 | 
						|
# 1997-02-20 fl     Created
 | 
						|
#
 | 
						|
# Copyright (c) 1997 by Secret Labs AB.
 | 
						|
# Copyright (c) 1997 by Fredrik Lundh.
 | 
						|
#
 | 
						|
# See the README file for information on usage and redistribution.
 | 
						|
#
 | 
						|
 | 
						|
##
 | 
						|
 | 
						|
 | 
						|
class Iterator(object):
 | 
						|
    """
 | 
						|
    This class implements an iterator object that can be used to loop
 | 
						|
    over an image sequence.
 | 
						|
 | 
						|
    You can use the ``[]`` operator to access elements by index. This operator
 | 
						|
    will raise an :py:exc:`IndexError` if you try to access a nonexistent
 | 
						|
    frame.
 | 
						|
 | 
						|
    :param im: An image object.
 | 
						|
    """
 | 
						|
 | 
						|
    def __init__(self, im):
 | 
						|
        if not hasattr(im, "seek"):
 | 
						|
            raise AttributeError("im must have seek method")
 | 
						|
        self.im = im
 | 
						|
        self.position = 0
 | 
						|
 | 
						|
    def __getitem__(self, ix):
 | 
						|
        try:
 | 
						|
            self.im.seek(ix)
 | 
						|
            return self.im
 | 
						|
        except EOFError:
 | 
						|
            raise IndexError  # end of sequence
 | 
						|
 | 
						|
    def __iter__(self):
 | 
						|
        return self
 | 
						|
 | 
						|
    def __next__(self):
 | 
						|
        try:
 | 
						|
            self.im.seek(self.position)
 | 
						|
            self.position += 1
 | 
						|
            return self.im
 | 
						|
        except EOFError:
 | 
						|
            raise StopIteration
 | 
						|
 | 
						|
    def next(self):
 | 
						|
        return self.__next__()
 |