Esempio n. 1
0
 def test_parse_ifd_tag_info(self):
     exif_header = ParseExifData(struct.pack('<4s2B2s2BL3H3L1H', b'Exif', 0, 0, b'II', 0x00, 0x2a, 0x00000008, 0x0001, 0x8825, 0x0003, 0x11223344, 26, 0xaabbccdd, 0x0))
     exif_header.check_exif_string()
     exif_header.ifd_0th_offset()
     exif_header.ifd_1st_offset(1)
     exif_header.get_tag_info("0th", 0)
     self.assertEqual(exif_header.ifd_offset("gps"), 26)
     self.assertEqual(exif_header.tag_number("gps"), 0x0)
     for count in range(exif_header.tag_number("gps")):
         exif_header.get_tag_info("gps", count)
     self.assertEqual(exif_header.exif_info_length("gps"), 0)
Esempio n. 2
0
def display_exif_info(exif_header: ped, read_jpeg_data: bytes,
                      ifd: str) -> None:
    """Exifの解析結果を表示する"""

    byte_order = exif_header.exif_byte_order()
    base_offset = exif_header.exif_base_offset()
    exif_info_length = exif_header.exif_info_length(ifd)

    print('-------------------- {:s} --------------------'.format(ifd))
    print('{:4s} IFD Offset = 0x{:08x}'.format(ifd,
                                               exif_header.ifd_offset(ifd)))
    print('{:4s} Tag Number = {:d}'.format(ifd, exif_info_length))

    for count in range(exif_info_length):

        exif_info = eti(ifd, byte_order, base_offset,
                        exif_header.exif_info(ifd, count))

        print('{:s} : [{:s} len = {:6d}] (0x{:08x}) : {:s}'.format( \
                                                _adjust_string(ADJUST_LEFT, 30, exif_info.change_id_to_string()), \
                                                _adjust_string(ADJUST_LEFT, 10, exif_info.change_format_to_string()), \
                                                exif_info.exif_tag_length(), \
                                                exif_info.exif_tag_value(), \
                                                exif_info.change_tag_value_to_string(read_jpeg_data)))