2008년 3월 17일 월요일

PythonMagickWand for Linux and Win32

언샾에 대해 알아보다 보니, 국내에서는 포토웍스가 영어권에서는 -포토샾 다음으로?-ImageMagick이라는 프로그램이 많이 사용 되더군요. 커맨드 라인 유틸리티(GUI 없습니다)로 윈도, 리눅스, 맥등의 플렛폼에서 돌아가며 소스까지 open되어 있습니다.

ImageMagick : 데비안에서는 imagemagick 패키지설치 윈도에서는 이걸 받아서 설치. MagickWand 라이브러리도 같이?설치됩니다.





게다가 ImageMagick의 이미지 처리 과정을 C언어에서 사용할 수 있는 MagickWand?라는 라이브러리가 있고,?파이썬용 바인딩도 이미 존재하네요.
PythonMagickWand?: ctypes based wrapper for ImageMagick

안 그래도 파이썬의 PIL의 모자란 점들(unsharp?없음, 속도 느림)때문에 이미지 처리를 위한 다른 파이썬 라이브러리가 없나 찾아 보고 있었기에 얼른 테스트 해 보았습니다.

위의 링크에서 받은 PythonMagickWand가 맥의 MagickWand를 불러오도록 되어 있어 os.name을 사용해 윈도와 리눅스에서도 적당한 라이브러리를 불러오도록 코드를 조금 수정하였습니다.
os_free.zip?: patch for PythonMagickWand in Linux and Windows


apply above patch to "PythonMagickWand.py"

"PythonMagickWand.py"에 위의 패치를 적용하세요.

적용된 OS별 MagickWand라이브러리 위치는 아래와 같습니다.



  • Win : "C:\Program Files\ImageMagick-6.3.9-Q16\CORE_RL_wand_.dll"

  • Linux : "/usr/lib/libWand.so.9"

  • Mac : "/opt/local/lib/libWand.dylib"


맥용 라이브러리의 위치는 원 저자가 사용한 위치고 Win과 Linux에서의 위치는?직접 찾았습니다.

아직 MagickWand API를 자세히 보지 못하여 파이썬 2.5에서 아래와 같이 간단한 리사이즈 기능을 테스트 해 보았습니다.

from PythonMagickWand import *
MagickWandGenesis()
wand = NewMagickWand()
MagickReadImage(wand,”sample.jpg”)
MagickScaleImage(wand,200,200)
MagickWriteImage(wand,”out.png”)

윈도XP와 데비안 리눅스에?모두 잘 되네요. :)

?see also : another Python bindings for ImageMagick's MagickWand API

댓글 없음:

댓글 쓰기