
exif.decode_unicode_motorola 함수는 Motorola 방식으로 인코딩된 유니코드 문자열을 디코딩하는 함수입니다.
Motorola 방식은 2바이트로 인코딩되며, 첫 번째 바이트의 6비트가 문자 코드를 나타내고, 마지막 비트가 여부를 나타냅니다.
예를 들어, 'Motorola' 인코딩된 유니코드 문자열을 디코딩하는 방법은 다음과 같습니다.
#hostingforum.kr
python
import exifread
# 예시 코드
with open('image.jpg', 'rb') as file:
tags = exifread.process_file(file)
# 디코딩 함수
def decode_motorola(s):
result = ''
i = 0
while i < len(s):
byte = s[i]
i += 1
code = (byte >> 2) & 0x1F
if (byte & 0x20) != 0:
result += chr(code)
else:
result += chr((code << 6) | (s[i] >> 2) & 0x3F)
i += 1
if (byte & 0x10) != 0:
result += chr(((code << 6) | (s[i] >> 2) & 0x3F) << 6) | (s[i + 1] >> 2) & 0x3F
i += 2
else:
result += chr(((code << 6) | (s[i] >> 2) & 0x3F) << 6)
return result
# 디코딩
unicode_string = decode_motorola(tags['Image ImageDescription'].values)
print(unicode_string)
이 코드는 'image.jpg' 파일의 EXIF 데이터에서 'ImageDescription' 태그의 값을 디코딩합니다.
2025-04-27 01:56