2010-12-07 2 views
9

deepzoom.py라는 python 스크립트를 사용하여 대용량 오버 헤드 렌더 (1GP 이상)를 딥 줌 이미지 형식 (예 : Google maps-esque 타일 형식)으로 변환하려고하지만 불행히도 PIL로 구동됩니다. 일반적으로 메모리 제한으로 인해 충돌이 발생합니다. 제작자는 VIPS에 대해 탐구하고 있다고 말했지만 nip2 (VIPS의 GUI 프론트 엔드)조차도 이미지를 열지 못합니다. 다른 사람이 다른 질문을해도 (같은 주제로), 누군가가 OpenImageIO에게 능력을 갖고있는 것처럼 보이고 Python 래퍼를 가지고 있지만 적절한 바이너리가 제공되지 않았으며 Windows에서 컴파일하려고하면 악몽.파이썬에서 거대한 이미지 (30000x30000 이상)를 다루고 있습니까?

내가 사용할 수있는 파이썬 용 대체 라이브러리가 있습니까? 저는 PythonMagickWand (ImageMagick의 래퍼)와 PythonMagick (GraphicsMagick의 래퍼)을 시도했지만, 둘 다 메모리 문제를 일으켰습니다.

+0

OpenImageIO 용 Linux를 사용하지 않으려면 어떻게해야합니까? 작은 외장 하드 드라이브를 설치하고 사용하지 않는 내장 드라이브를 설치하십시오. 나는 또한 당신의 시스템 사양이 작업에 달려 있다고 믿는다. 작은 이미지로 나누어서 변환 해 볼 수도 있습니다. –

+0

이전에 실패한 결과를 얻으 려했지만 제대로 설정하지 않아도되었습니다. 어쩌면이 말도 안 들리 겠지만 Windows에서 스크립트를 실행하려고하면 호환성이 없다고 생각했습니다. – Nicolas

답변

1

GIS 솔루션이 더 적절하게 들리는 지리 참조 된 이미지 나 비슷한 것을 사용하는 것처럼 들립니다. 나는 GDAL을 사용할 것입니다 - 훌륭한 라이브러리이고 Swig을 통해 사용하기 쉬운 파이썬 바인딩을 제공합니다.

Windows에서 설치하는 가장 쉬운 방법은 Frank Warmerdam의 FWTools 패키지를 사용하는 것입니다.

+0

그게 완벽합니다. 플러스 인 피라미드 제작 도구도 포함 된 것처럼 보입니다. 건배! – Nicolas

+0

흠, 분명히 아닙니다. GDAL은 이미지를 열 때 '메모리가 부족합니다'라는 결과를 반환하는 libjpeg을 사용합니다. 아마 나는 (어떤 식 으로든) 내가 그것으로 무엇이든 할 수 있기 전에 그것을 원시 형식으로 변환 할 필요가있다. 나는 리눅스 VM에서 컴파일을 시도하고 그것이 어떻게되는지 보게 될 것이다. – Nicolas

+0

@ Nicolas : 음 ... GDAL이 너무 커서 이미지를 메모리에 저장할 수 없다는 것을 알고 있습니다. 저는 JPEG 드라이버를 광범위하게 사용하지 않았기 때문에 주석을 달 수는 없지만 원시 형식으로 더 나은 성공을 거둘 것으로 기대합니다. –

0

부분적인 하중이 유용합니까? PIL을 사용하고 이미지 형식이 .BMP 인 경우 : 이미지 파일을로드 (로드하지 않음) 한 다음 crop()을 수행 한 다음로드 - 이미지의 일부만 실제로로드합니다 자르기로 선택한 아마도 TGA, JPG, PNG 및 다른 형식에서도 효과가 없을 것입니다.

2

나는 매우 비슷한 문제가있어서 Windows에서 잘 작동하는 netpbm을 사용하여 문제를 해결했습니다. Netpbm은 거대한 .png 파일을 변환 한 다음 슬라이싱, 자르기, 다시 결합 (pamcrop, pamdice 및 pamundice 사용) 및 메모리를 많이 사용하지 않고 .png로 다시 변환 할 때 아무런 문제가 없었습니다. 난 그냥 필요한 응용 프로그램과 함께 필요한 netpbm 바이너리와 DLL을 포함하고 파이썬에서 그들을 불렀다.

1

최신 libvips 7.32에는 모든 크기의 이미지로 작업 할 수있는 매우 빠른 DeepZoom 제작자가 함께 제공됩니다.

$ vips dzsave huge.tif mydz 

mydz_files에 타일을 쓸 것 또한 당신을 위해 mydz.dzi 정보 파일을 작성 :보십시오.

dzsave에 대한 소개는 this blog post을 참조하십시오.

관련 문제