RAW 파일의 축소판을 만들고 싶지만 RAW 파일을 직접 처리하는 것은 매우 느립니다. 임베디드 JPG에서 축소판을 먼저 처리하고 최후의 수단으로 RAW 파일 만 렌더링하려고합니다. 완드를 사용하여 임베디드 JPG를 추출하려면 어떻게해야합니까?Python의 MagickWand가있는 RAW 파일에서 JPG를 추출합니다.
1
A
답변
1
RAW
형식은 장치와 제조 방법에 따라 다릅니다. 일반적으로 완전한 이미지 센서 데이터는 JPEG 미리보기로 TIFF로 저장됩니다. 전체 파일을 도구로로드하는 대신 사양을 찾고 file
및 struct
으로 직접 미리보기를 추출하는 것이 더 빠릅니다. 다음은 Fujifilm's spec의 예입니다.
from struct import unpack
fd = file('source.raf','rb')
# Skip over header + directory
# See manufacture specification
offset = 16 # Magic bytes
offset += 12 # Version
offset += 32 # Camera name
offset += 24 # Directory start & meta
fd.seek(offset, 0)
jpeg_offest = unpack('i', fd.read(4)) # Read where JPEG data starts
jpeg_length = unpack('i', fd.read(4)) # Read size of JPEG data
fd.seek(jpeg_offset, 0)
jpg_blob = fd.read(jpeg_length)
이제 모든 RAW 데이터가 동일한 제조 사양으로 생성 된 경우이 솔루션은 작동
from wand.image import Image
if jpeg_blob:
img = Image(blob=jpg_blob)
else:
img = Image(filename='source.raf')
RAW 이미지에 다시 wand
에 BLOB, 또는 기본 놓습니다. 그렇지 않으면 각 사양에 대한 파일 프로필을 작성하고 각 RAW 파일의 매직 바이트를 평가하여 JPEG 데이터의 위치를 확인해야합니다. 당신은 캐논 CR2 파일을 읽을 경우 흐름이
0
...과 같이 보일 수 있습니다, 당신이 (이 pypi에이기도합니다) 사용할 수있는 rawphoto
라는 라이브러리를 작성했습니다. 나중에 다른 원시 형식에 대한 지원을 추가 할 수 있습니다
from rawphoto.raw import Raw
from wand.image import Image
with Raw(filename="example.CR2") as rawfile:
blob = rawfile.fhandle.get_thumbnail()
// Do something with your JPEG thumbnail, eg. convert it to a PNG with Wand:
with Image(blob=blob) as image:
image.format = 'png'
image.save(filename='someimage.png')
:
이 썸네일을 추출하려면, 당신은 뭔가를 할 수 있습니다. 당겨 요청을 환영합니다.관련 문제
- 1. Python의 Raw 이진 이미지에서 읽기
- 2. .raw 파일에서 3D 바이트 배열을로드하려면
- 3. apk 파일에서 Keystore 파일을 추출합니다.
- 4. 단어 파일에서 링크와 단어를 추출합니다.
- 5. 프로토 파일에서 GPB 설명자를 추출합니다.
- 6. 파일에서 그대로 열 데이터를 추출합니다.
- 7. 파일에서 이미지 배열로 여러 .jpg를 추가하십시오.
- 8. C : 파일에서 jpg를 읽고 저장하는 방법?
- 9. python의 텍스트 파일에서 pdf를 생성하십시오
- 10. Python의 txt 파일에서 목록 읽기
- 11. Python의 txt 파일에서 링크 열기
- 12. Python의 CSV 파일에서 열 숨기기
- 13. python POST - 파일에서 RAW 데이터로 변환
- 14. Android Raw XML 파일에서 설명을 삽입합니다.
- 15. wav 파일에서 raw PCM 바이트 재생
- 16. PHP로 JPG를 구문 분석하고 JPG를 반환하는 방법
- 17. 유닉스의 EAR 파일에서 특정 클래스 파일을 추출합니다.
- 18. 파이썬의 csv 파일에서 열 이름을 추출합니다.
- 19. pg 덤프 파일에서 데이터를 추출합니다 (insert 명령)
- 20. 텍스트 파일에서 R 함수의 이름을 확실하게 추출합니다.
- 21. RegExp로 Redmine 로그 파일에서 데이터를 추출합니다.
- 22. 파이썬 CSV 파일에서 고유 한 레코드를 추출합니다
- 23. 여러 텍스트 파일에서 특정 줄을 추출합니다.
- 24. 특정 글꼴의 텍스트를 docx 파일에서 추출합니다.
- 25. J2ME은 txt 파일에서 전화 번호를 추출합니다.
- 26. php는 텍스트 파일에서 데이터를 읽고 추출합니다.
- 27. xml 트리 파일에서 파이썬으로 데이터를 추출합니다.
- 28. AWK는 두 번째 파일에서 선택한 헤더를 기반으로 파일에서 열을 추출합니다.
- 29. DJango-Python의 MySQL raw() 쿼리에 여러 인수가 있습니다.
- 30. 카이로에서 jpg를 저장하는 방법
각 제조업체의 원시 형식이 축소판 JPEG에 대해 일정한 오프셋을 갖기를 기대하는 것이 합리적입니까? 형식이 업데이트 될 때 절대 변경되지 않기를 원하십니까? –
그렇게되지 않으므로 [magic bytes] (http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_numbers_in_files)를 읽을 필요가 있습니다. 대부분의 제조업체는 사양을 게시하고 모든 솔루션이이를 따라야합니다. – emcconville