Пример #1
0
 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()
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
 def setUp(self):
     self.processor = free_sprite_processor.FreeSpriteProcessor(None)
     self._built = None