def process_image(self, img, palette_text=None, auto_sprite_bg=False, traversal=None): if 'free' in self.args.traversal: self.processor = free_sprite_processor.FreeSpriteProcessor( self.args.traversal) self.processor.set_verbose('--verbose' in sys.argv) self.processor.process_image( img, palette_text, self.args.bg_color.mask, self.args.bg_color.fill, self.args.platform, self.args.is_locked_tiles, self.args.lock_sprite_flips, self.args.allow_overflow) elif self.args.traversal == '8x16': self.processor = eight_by_sixteen_processor.EightBySixteenProcessor( ) self.processor.process_image( img, palette_text, self.args.bg_color.mask, self.args.bg_color.fill, self.args.platform, self.args.traversal, self.args.is_sprite, self.args.is_locked_tiles, self.args.lock_sprite_flips, self.args.allow_overflow) else: self.processor = image_processor.ImageProcessor() if auto_sprite_bg: self.processor._test_only_auto_sprite_bg = auto_sprite_bg self.processor.process_image( img, palette_text, self.args.bg_color.mask, self.args.bg_color.fill, self.args.platform, self.args.traversal, self.args.is_sprite, self.args.is_locked_tiles, self.args.lock_sprite_flips, self.args.allow_overflow) self.ppu_memory = self.processor.ppu_memory() self.err = self.processor.err()
def run(self, img, args): traversal = self.get_traversal(args.traversal_strategy) if args.makepal: global makepal_processor if not makepal_processor: import makepal_processor processor = makepal_processor.MakepalProcessor() processor.process_image(img, args) if processor.err().has(): self.handle_errors(processor.err(), img, args) return False processor.create_output(args.output) return True elif 'free' in traversal: if not args.is_sprite or args.bg_color.fill is None: raise errors.CommandLineArgError( 'Traversal strategy \'%s\' requires -s and -b `mask=fill` flags' % ( traversal)) global free_sprite_processor if not free_sprite_processor: import free_sprite_processor processor = free_sprite_processor.FreeSpriteProcessor(traversal) processor.set_verbose('--verbose' in sys.argv) processor.process_image(img, args.palette, args.bg_color.mask, args.bg_color.fill, args.is_locked_tiles, args.lock_sprite_flips, args.allow_overflow) elif traversal == '8x16': if not args.is_sprite: raise errors.CommandLineArgError('Traversal strategy \'8x16\' requires ' '-s flag') global eight_by_sixteen_processor if not eight_by_sixteen_processor: import eight_by_sixteen_processor processor = eight_by_sixteen_processor.EightBySixteenProcessor() processor.process_image(img, args.palette, args.bg_color.mask, args.bg_color.fill, traversal, args.is_sprite, args.is_locked_tiles, args.lock_sprite_flips, args.allow_overflow) else: global image_processor if not image_processor: import image_processor processor = image_processor.ImageProcessor() processor.process_image(img, args.palette, args.bg_color.mask, args.bg_color.fill, traversal, args.is_sprite, args.is_locked_tiles, args.lock_sprite_flips, args.allow_overflow) if args.bg_color.fill: processor.ppu_memory().override_bg_color(args.bg_color.fill) self.create_views(processor.ppu_memory(), args, img) if processor.err().has(): self.handle_errors(processor.err(), img, args) return False self.create_output(processor.ppu_memory(), args, traversal) if args.show_stats: self.show_stats(processor.ppu_memory(), processor, args) return True
def run(self, img, args): traversal = self.get_traversal(args.traversal_strategy) if args.makepal: global makepal_processor if not makepal_processor: import makepal_processor processor = makepal_processor.MakepalProcessor() processor.process_image(img, args) if processor.err().has(): self.handle_errors(processor.err(), img, args) return False processor.create_output(args.output) return True elif 'free' in traversal: # DEPRECATED if not args.is_sprite or args.bg_color.fill is None: raise errors.CommandLineArgError( 'Traversal strategy \'%s\' requires -s and -b `mask=fill` flags' % (traversal)) global free_sprite_processor if not free_sprite_processor: import free_sprite_processor processor = free_sprite_processor.FreeSpriteProcessor(traversal) processor.set_verbose('--verbose' in sys.argv) processor.process_image(img, args.palette, args.bg_color.mask, args.bg_color.fill, args.platform, args.is_locked_tiles, args.lock_sprite_flips, args.allow_overflow) elif args.decompose_sprites: # --decompose_sprites is a processor mode, not a traversal style. # Can be combined with --free 8x16. Implies -s # TODO: Make -b optional, derive it if possible if args.bg_color.fill is None: raise errors.CommandLineArgError( 'Decompose sprites mode requires -b `mask=fill` flags') global decompose_sprites_processor if not decompose_sprites_processor: import decompose_sprites_processor processor = decompose_sprites_processor.DecomposeSpritesProcessor() # TODO: lock_sprite_flags, is_locked_tiles, allow_overflow? processor.process_image( img, args.palette, args.bg_color.mask, args.bg_color.fill, { 'anon_view': args.rect_cover_anon_view, 'steps_view': args.rect_cover_steps_view }) if processor.err().has(): self.handle_errors(processor.err(), img, args) return False args.is_sprite = True elif traversal == '8x16': if not args.is_sprite: raise errors.CommandLineArgError( 'Traversal strategy \'8x16\' requires ' '-s flag') global eight_by_sixteen_processor if not eight_by_sixteen_processor: import eight_by_sixteen_processor processor = eight_by_sixteen_processor.EightBySixteenProcessor() processor.process_image(img, args.palette, args.bg_color.mask, args.bg_color.fill, args.platform, traversal, args.is_sprite, args.is_locked_tiles, args.lock_sprite_flips, args.allow_overflow) else: global image_processor if not image_processor: import image_processor processor = image_processor.ImageProcessor() processor.process_image(img, args.palette, args.bg_color.mask, args.bg_color.fill, args.platform, traversal, args.is_sprite, args.is_locked_tiles, args.lock_sprite_flips, args.allow_overflow) if args.bg_color.fill: processor.ppu_memory().override_bg_color(args.bg_color.fill) self.create_views(processor.ppu_memory(), args, img) if processor.err().has(): self.handle_errors(processor.err(), img, args) return False self.create_output(processor.ppu_memory(), args, traversal, args.platform) if args.show_stats: self.show_stats(processor.ppu_memory(), processor, args) return True
def setUp(self): self.processor = free_sprite_processor.FreeSpriteProcessor(None) self._built = None