2009-05-14 4 views
2

다른 것들 중에서 압축되지 않은 비트 맵 파일 (.BMP)이 포함되어있는 다소 복잡한 파일이 있는데, 어떻게 파이썬에서 압축을 풀겠습니까?
"BM"태그를 검색하여 다음 바이트가 BMP 헤더와 "유사"합니까?파일에서 비트 맵 추출

+0

이미 답변을 구했을 때 질문하는 이유는 무엇입니까? – shoosh

+1

예, 실제로 다른 파일의 바이트를 읽지 않고 다른 파일에 포함 된 비트 맵을 마술처럼 찾는 다른 알고리즘이 있습니다. 슬프게도, 그것은 내가 말할 수없는 회사의 독점 제품입니다. 농담이야. 네 질문은 뭐니? –

+0

어쩌면 이미 그 도구/라이브러리가 있었기 때문에 물었습니다. 어쨌든, 가능한 한 대답이 포함되어 있기 때문에 누군가 내 질문에 대해 downvote 했습니까? 우리는 사람들이 먼저 스스로 솔루션을 찾지 않고 "스택 오버플로에 대해 묻습니다"라고 말하고 있습니까? : D – Joril

답변

4

나는 Python Imaging Library PIL을 사용하고 데이터를 가지고있다. 구문 분석 할 수 있으면 유효한 이미지입니다. 예외를 throw하면 예외가 발생합니다.

이미지의 시작 부분을 검색해야합니다. 운이 좋으면 이미지 리더가 이미지 데이터 다음에 나오는 쓰레기를 무시합니다. 그렇지 않으면 이진 탐색을 사용하여 이미지의 끝을 찾습니다.

+0

그러나 파일에 이미지 옆에 다른 내용이 포함되어 있다면 어떻게 될까요? 그것을 추출 할 수 있을까요? 또한 검색해야합니다. – Geo

4

예, 'BM'마커 파일을 검색하여 BITMAPFILEHEADER 및 해당 BITMAPINFO로 다음 데이터를 가져 와서 그 값이 올바른지 확인하십시오 (즉, 치수가 합리적이고 색 깊이가 적당 함 등).

합리적으로 보이는 것을 찾으면 해당 데이터를 빼내어 다른 대답에 언급 된 라이브러리로 전달하십시오.