홈>
몇 일 전에 나는 다른 분야에서 질문을했습니다 마지막으로 친구 (@emcconville)가 "모든 JPEG 파일을 단일 파일로 복구"스크립트를 도와주었습니다. 이제이 프로그램은 표준 "JFIF"이미지에서만 작동하며 "EXIF"표준 이미지 (디지털 카메라로 촬영 한 이미지)를 검색 할 수 없다는 것을 깨달았습니다.
이미지의 Exif 표준을 알 수 있도록 프로그램을 변경하는 방법은 무엇입니까? 저는 파이썬에 익숙하지 않으며 그 힘을 모릅니다.
감사합니다
import struct
with open('src.bin', 'rb') as f:
# Calculate file size.
f.seek(0, 2)
total_bytes = f.tell()
# Rewind to beging.
f.seek(0)
file_cursor = f.tell()
image_cursor = 0
while file_cursor < total_bytes:
# Can for start of JPEG.
if f.read(1) == b"\xFF":
if f.read(3) == b"\xD8\xFF\xE0":
print("JPEG FOUND!")
# Backup and find the size of the image
f.seek(-8, 1)
payload_size = struct.unpack('<I', f.read(4))[0]
# Write image to disk
d_filename = 'image{0}.jpeg'.format(image_cursor)
with open(d_filename, 'wb') as d:
d.write(f.read(payload_size))
image_cursor += 1
file_cursor = f.tell()
- 답변 # 1
관련 자료
- python - (파일) 이름 끝에 특정 텍스트가있는 파일을 한 폴더에서 다른 폴더로 복사
- jquery - JavaScript에서 이름별로 파일을 끌어서 놓기
- linux - bash를 사용하여 텍스트 파일에서 제거 된 행을 원래 파일로 다시 복사
- sed - 파일 확장자를 유지하면서 dir (s) 내의 파일 이름을 각각의 dir 이름으로 어떻게 바꿀 수 있습니까?
- c# - 생성이 완료되면 폴더를 모니터링하고 새 파일을 복사합니다
- java - JetBrains는 IDE 용 exe 파일을 어떻게 생성합니까?
- AppleScript를 사용하여 USB에서 파일을 감지하고 조작하는 방법
- scala - H3 ClassCastException을 해결하기 위해 S3의 Parquet 파일을 스키마에 매핑
- python - 공통 열을 기준으로 여러 개의 CSV 파일을 병합하는 방법은 무엇입니까?
- powershell - filesize를 사용하여 특정 유형의 모든 파일 목록을 포함하는 텍스트 파일을 만듭니다
- 디렉토리의 모든 파일을 열고 첫 줄을 인쇄하는 Python 코드
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- JavaScript 변수를 HTML div에 '출력'하는 방법
- python - 문자열에서 특정 문자 제거
와이즈 비즈
그냥 변경
to
두 경우를 모두 확인하려면
if f.read(3) == b"\xD8\xFF\xE1":
를 사용하지 마십시오 더 이상 그런 식으로 대신에x = f.read(3) if x in (b"\xD8\xFF\xE0", b"\xD8\xFF\xE1"):