def parse_args():
    try:
        parser = argparse.ArgumentParser()
        parser.add_argument("-f",
                            required=True,
                            help="path to gif file")
        parser.add_argument("-r",
                            action='store_const',
                            const=True,
                            help="random palette")
        parser.add_argument("-d",
                            action='store_const',
                            const=True,
                            help="show only hexdump")
        parser.add_argument("-i",
                            action='store_const',
                            const=True,
                            help="show only information about file")
        args = parser.parse_args()
        file_path = args.f
        if args.d:
            gif_obj = gifparser.get_gif_obj_from_file(file_path)
            hexdump = utils.get_only_hexdump(gif_obj)
            print(hexdump + '\n')
        if args.i:
            gif_obj = gifparser.get_gif_obj_from_file(file_path)
            info = utils.get_full_info(gif_obj)
            print(info + '\n')
        else:
            if args.r:
                gui.run_prog_with_random_palette(file_path)
            else:
                gui.run_prog(file_path)
    except FileNotFoundError:
        print("No such file or directory.")
 def open_file(self, new_filename):
     current_dir = os.getcwd()
     current_path = os.path.join(current_dir, new_filename)
     if os.path.exists(current_path):
         self.gif_obj = gifparser.get_gif_obj_from_file(new_filename)
         self.filename = new_filename
         self.draw_mainwindow()
     else:
         self.display_error(OPEN_FILE_ERROR_TEXT, self.get_new_filename)
Esempio n. 3
0
 def setUp(self):
     self.filename = 'images/loading.gif'
     self.gif_obj = gifparser.get_gif_obj_from_file(self.filename)
     with open(self.filename, 'rb') as gif_file:
         self.filebytes = gif_file.read()
     self.g_parser = gifparser.GifParser(self.filebytes)
     self.exp_ls_descriptor_bytes = \
         b'\x47\x49\x46\x38\x39\x61\x80\x00\x80\x00\xC6\x00\x00'
     # !! читать из файла:
     self.exp_gct_bytes = \
         b'\x04\x02\x04\x84\x82\x84\x44\x42\x44\xC4\xC2\xC4\x24' \
         b'\x22\x24\xA4\xA2\xA4\x64\x62\x64\xE4\xE2\xE4\x14\x12' \
         b'\x14\x94\x92\x94\x54\x52\x54\xD4\xD2\xD4\x34\x32\x34' \
         b'\xB4\xB2\xB4\x74\x72\x74\xF4\xF2\xF4\x0C\x0A\x0C\x8C' \
         b'\x8A\x8C\x4C\x4A\x4C\xCC\xCA\xCC\x2C\x2A\x2C\xAC\xAA' \
         b'\xAC\x6C\x6A\x6C\xEC\xEA\xEC\x1C\x1A\x1C\x9C\x9A\x9C' \
         b'\x5C\x5A\x5C\xDC\xDA\xDC\x3C\x3A\x3C\xBC\xBA\xBC\x7C' \
         b'\x7A\x7C\xFC\xFA\xFC\x04\x06\x04\x84\x86\x84\x44\x46' \
         b'\x44\xC4\xC6\xC4\x24\x26\x24\xA4\xA6\xA4\x64\x66\x64' \
         b'\xE4\xE6\xE4\x14\x16\x14\x94\x96\x94\x54\x56\x54\xD4' \
         b'\xD6\xD4\x34\x36\x34\xB4\xB6\xB4\x74\x76\x74\xF4\xF6' \
         b'\xF4\x0C\x0E\x0C\x8C\x8E\x8C\x4C\x4E\x4C\xCC\xCE\xCC' \
         b'\x2C\x2E\x2C\xAC\xAE\xAC\x6C\x6E\x6C\xEC\xEE\xEC\x1C' \
         b'\x1E\x1C\x9C\x9E\x9C\x5C\x5E\x5C\xDC\xDE\xDC\x3C\x3E' \
         b'\x3C\xBC\xBE\xBC\x7C\x7E\x7C\xFC\xFE\xFC\xFF\xFF\xFF' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
         b'\x00\x00\x00\x00\x00\x00\x00'
     self.netscape_block = \
         b'\x21\xFF\x0B\x4E\x45\x54\x53\x43\x41\x50\x45\x32\x2E' \
         b'\x30\x03\x01\x00\x00\x00'
     self.gc_extension_1 = \
         b'\x21\xF9\x04\x09\x06\x00\x40\x00'
     self.img_descriptor_1 = \
         b'\x2C\x00\x00\x00\x00\x80\x00\x80\x00\x00'
     self.image_block_1 = b''
     self.gct_size = 384
def run_prog(file_path):
    filename = get_filaname(file_path)
    gif_obj = gifparser.get_gif_obj_from_file(filename)
    dr = GUI(gif_obj, filename)
    dr.draw_mainwindow()
 def display_correct_palette(self):
     self.gif_obj = gifparser.get_gif_obj_from_file(self.filename)
     self.display_gif()
     self.display_palette()