Example #1
0
    def test_binary_format(self):
        exif_header = ParseExifData(struct.pack('4s2B2s', b'Exif', 0, 0, b'MM'))
        exif_header.check_exif_string()
        self.assertEqual(exif_header.exif_byte_order(), exif_header.BYTE_ORDER_BIG_ENDIAN)

        exif_header = ParseExifData(struct.pack('4s2B2s', b'Exif', 0, 0, b'II'))
        exif_header.check_exif_string()
        self.assertEqual(exif_header.exif_byte_order(), exif_header.BYTE_ORDER_LITTLE_ENDIAN)

        exif_header = ParseExifData(struct.pack('4s2B2s', b'Exif', 0, 0, b'MI'))
        exif_header.check_exif_string()
        self.assertEqual(exif_header.exif_byte_order(), exif_header.BYTE_ORDER_ERROR)

        exif_header = ParseExifData(struct.pack('4s2B2s', b'Exif', 0, 0, b'IM'))
        exif_header.check_exif_string()
        self.assertEqual(exif_header.exif_byte_order(), exif_header.BYTE_ORDER_ERROR)
Example #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)))