コード例 #1
0
ファイル: gui.py プロジェクト: dustmop/makechr
 def __init__(self, *args, **kwargs):
     super(MakechrGui, self).__init__(*args, **kwargs)
     self.processor = image_processor.ImageProcessor()
     self.renderer = view_renderer.ViewRenderer(scale=1)
     self.inputImagePath = None
     self.cursor = None
     self.manager = None
     self.watcher = file_modify_watcher.FileModifyWatcher()
     self.messageTimer = None
     self.Create()
     self.Bind(wx.EVT_CLOSE, self._close_handler)
コード例 #2
0
 def create_views(self, mem, args, img, scale=None):
   if args.use_legacy_views:
     renderer = view_renderer.ViewRenderer(is_legacy=True)
   else:
     renderer = view_renderer.ViewRenderer(is_legacy=False, scale=scale)
   if args.palette_view:
     renderer.create_palette_view(args.palette_view, mem, args.is_sprite)
   if args.colorization_view:
     renderer.create_colorization_view(args.colorization_view, mem,
                                       args.is_sprite)
   if args.reuse_view:
     nt_inverter = mem.build_nt_inverter()
     renderer.create_reuse_view(args.reuse_view, mem, nt_inverter)
   if args.nametable_view:
     renderer.create_nametable_view(args.nametable_view, mem)
   if args.chr_view:
     renderer.create_chr_view(args.chr_view, mem)
   if args.grid_view:
     renderer.create_grid_view(args.grid_view, img)
   if args.free_zone_view:
     renderer.create_free_zone_view(args.free_zone_view, img, mem)
コード例 #3
0
 def handle_errors(self, error_provider, img, args):
   es = error_provider.get()
   sys.stderr.write('Found {0} error{1}:\n'.format(
     len(es), 's'[len(es) == 1:]))
   for e in es:
     sys.stderr.write('{0} {1}\n'.format(type(e).__name__, e))
   if args.error_outfile:
     sys.stderr.write('Errors displayed in "{0}"\n'.format(args.error_outfile))
     errors_with_dups = error_provider.get(include_dups=True)
     renderer = view_renderer.ViewRenderer()
     renderer.create_error_view(args.error_outfile, img, errors_with_dups)
   else:
     sys.stderr.write('To see errors visually, use the ' +
                      '"-e <error_image.png>" command-line option.\n')
コード例 #4
0
ファイル: app_palette_test.py プロジェクト: dustmop/makechr
 def test_error_too_many_subsets(self):
     """If image colors cannot be merged into a valid palette, throw error."""
     img = Image.open('testdata/full-image-conflict.png')
     self.process_image(img)
     self.args.error_outfile = self.args.tmppng('error')
     self.assertTrue(self.err.has())
     es = self.err.get()
     expect_errors = [
         'PaletteTooManySubsets - valid: ' + '30-28-19-14,38-30-16-01\n' +
         'subsets that can\'t be merged: ' + '[30-0c-0b,31-30-04,34-30-07]'
     ]
     actual_errors = ['%s %s' % (type(e).__name__, str(e)) for e in es]
     self.assertEqual(actual_errors, expect_errors)
     expect_list_blocks = [[1, 4], [2, 4], [3, 4]]
     self.assertEqual(es[0].list_blocks, expect_list_blocks)
     renderer = view_renderer.ViewRenderer()
     renderer.create_error_view(self.args.error_outfile, img, es)
     self.assert_file_eq(self.args.error_outfile,
                         'testdata/errors-conflict-palette.png')
コード例 #5
0
ファイル: app_bin_test.py プロジェクト: dustmop/makechr
 def test_error_image_small_square(self):
     """Multiple errors, with a 128x128 image, outputs correctly."""
     img = Image.open('testdata/full-image-small-square-with-error.png')
     self.process_image(img)
     self.args.error_outfile = self.args.tmppng('error')
     self.create_output()
     self.assertTrue(self.err.has())
     errs = self.err.get()
     expect_errors = [
         'PaletteOverflowError @ block (1y,3x)',
         'PaletteOverflowError @ tile (2y,10x)',
         ('CouldntConvertRGB : R ff, G ff, B 00' +
          ' @ tile (4y,1x) / pixel (33y,10x)')
     ]
     actual_errors = ['%s %s' % (type(e).__name__, str(e)) for e in errs]
     self.assertEqual(actual_errors, expect_errors)
     renderer = view_renderer.ViewRenderer()
     renderer.create_error_view(self.args.error_outfile, img, errs)
     self.assert_file_eq(self.args.error_outfile,
                         'testdata/errors-full-image-small-square.png')