except: pass vFrames = 0 # Save frame number. im = Image.open( vImageName ) for frame in range(999): try: im.seek(frame) vFrames = frame+1 except: break print 'Image has %i frames.' % vFrames for frame in range(vFrames): # im = Image.open( vImageName ) # The image must be re-opened every loop. for frm in range(frame+1): # Try to move to next frame. im.seek(frm) # # Now save the frame image on HDD, as PNG. vResultedImage = os.getcwd() + '/' + 'Gif_2_LMGL/img' + str(frame) + '.PNG' im.save( vResultedImage, **im.info ) lm.Consume( image=vResultedImage, x=0, y=0, pattern='default' ) # try: shutil.rmtree( os.getcwd() + '/' + 'Gif_2_LMGL' ) # Delete temporary directory. except: pass try: os.remove( 'Gif_2_LMGL.lmgl' ) # Delete old LMGL. except: pass lm.Save( 'Gif_2_LMGL.lmgl', 'y' ) # Save new LMGL. os.system( 'echo Done.&pause' )
This file can be later rendered (check Spit example) or exported (check Spawn example). The transformation can be direct from Image to ASCII : call Consume, then Spawn as txt. You can choose another pattern for transformation. Filters can be applied on the image, separated by "|" (vertical line). For the list of valid patterns and filters check "LetterMonster" class, function "__init__". ''' import os, sys sys.path.insert(0, os.getcwd()) from _letter_monster import LetterMonster lm = LetterMonster() lm.DEBUG = True lm.Consume(image='Logo.png', x=0, y=0, pattern='default', filter='') try: os.remove('test_cons.lmgl') except: pass lm.Save('test_cons.lmgl', 'y') print 'Body 1: ', lm.body, '\n' print 'Data is len:', len(lm.body['raster1'].data) print 'Data[0] is len:', len(lm.body['raster1'].data[0]), '\n' print("Please, use Lucida Console Bold, size 4 for viewing.") os.system('echo Done.&pause')