Perl/Prima 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: Perl/Prima 는 읽기 전용 페이지입니다.
* [http://prima.eu.org/ PRIMA homepage] * Cpan:Prima jpg 파일에서 일부를 잘라내는 작업을 Perl을 사용하여 자동으로 하려고 했는데, Image Processing 관련 모듈이 상당히 많다. * Cpan:Image::Magick ** [http://www.imagemagick.org/script/index.php ImageMagick]의 [[Perl]]인터페이스. ** ImageMagick이 설치되어 있어야 함 * Cpan:GD ** [http://www.boutell.com/gd/ GD Graphics Library]가 설치되어 있어야 함 * Cpan:Imager ** 딱히 의존성은 없는데, jpg 파일을 처리하기 위해서는 별도의 jpeg 라이브러리가 필요 * Cpan:Prima ** 일단 이거 낙찰 뭐가 뭔지도 모르겠고, "이미지를 처리"하는 기능과 "GUI를 제공"하는 기능이 섞여 있어서 뭘 써야 할지 모르겠는데, 일단 Prima 모듈의 경우 딱히 다른 라이브러리를 요구하지 않고 윈도우에 [http://strawberryperl.com/ strawberry perl] 5.10 이 설치되어 있는 상태에서 cpan 을 통해 바로 설치되더라. (신기해라...) 그런데 perldoc은 너무 불친절하고 홈페이지에서 제공하는 PDF문서는 GUI 창을 띄우는 예제부터 시작하고 있어서... 얼른 필요한 작업을 하는게 쉽지 않은 상태. 직접 테스트하면서 알아낸 것들을 적어 둔다. == # 설치 == 희한하게... 분명 저번에는 cpan 에서 install Prima 하는 걸로 잘 되었던 걸로 기억하는데(기억이 잘못된 걸 수도), 지금(2011.12) 다시 하려니 도저히 안 된다. 설치는 되어 있었는데 bmp 포맷밖에 지원을 못 해서, 재설치하려는데 계속 컴파일 할 때 다른 이미지 포맷에 관련된 함수를 링크를 못 하여 에러. 결국 겸사겸사 펄도 업그레이드하자 싶어서, Strawberry Perl 5.10 이 깔려 있던 걸 아예 삭제하고, 5.12.3을 설치한 후, Prima 를 제일 먼저 설치를 시도했는데 또 같은 이유로 실패. 결국 다음과 같은 순서로 설치하였음 * Cpan:Prima::codecs::win32""를 cpan을 통해 설치한 후 ** 예전에 설치할 때는 Prima를 설치할 때 이것도 알아서 설치해줬고, 나는 아예 그 사실조차 모른채로 자연스럽게 설치가 끝났던 것 같은데... ** 아래의 바이너리 다운로드를 사용하려는데 굳이 이 codecs 모듈을 설치해야 되는지도 의문이긴 한데, 설치하지 않고 곧바로 바이너리 설치를 해 보진 않았음 * Prima 자체는 홈페이지의 [http://prima.eu.org/download/bindist.html 바이너리 다운로드] 페이지에서 받아서
perl ms_install.pl
하여 설치 ** 설치가 끝난 후
perl -MPrima
로 실행했을 때, "libXpm_.dll을 찾을 수 없으므로 응용 프로그램을 시작하지 못했습니다"라고 에러가 뜬다면,
c:\strawberry\c\bin\libXpm_.dll
파일이 있는지 살펴보라. 없다면 Strawberry Perl 버전 5.10.0 부근의 초반 버전을 사용하고 있을 것이다. [http://strawberryperl.com/releases.html 딸기 펄 홈페이지]에서 몇 개 버전의 zip 포맷을 받아서 살펴보니 5.10.1 이상에는 들어 있는 듯. 즉 딸기 펄도 업데이트해 주어야 하겠음 == # 몇가지 예제코드 == 주로 Cpan:Prima::Image""에서 참고. bmp 파일을 읽어서, 픽셀의 색을 얻거나 바꾸고, 일부를 잘라내어 저장하는 예: {{{#!vim perl use Prima; # "0.bmp"를 읽음 my $image = Prima::Image->load('0.bmp'); die "$@" unless $image; # 이미지의 가로와 세로 길이를 얻어냄 # 만일 width(10) 처럼 setter 로 사용할 경우 그림이 확대 또는 축소된다. (설정에 따라 이 동작을 바꿀 수 있는 듯) print "Width : ", $image->width(), "\n"; print "Height: ", $image->height(), "\n"; # 가로10, 세로5 좌표 픽셀의 컬러값을 얻음 # 이 때 그림의 좌측 하단이 (0,0)이다. printf "%06x", $image->pixel(10, 5); # 5,0 자리 픽셀의 컬러를 지정 $image->pixel(5, 0, 0x00ff00); # 일부 추출 (x오프셋, y오프셋, 폭, 높이) my $newimage = $image->extract(5, 0, 12, 2); # 저장 $newimage->save('01.bmp'); }}} == # 코덱 문제 == 처리할 수 있는 코덱의 목록 확인은 다음과 같이: {{{#!vim perl use Prima; print "$_->{fileShortType}\n" for @{Prima::Image->codecs}; }}} {{{#!vim D:> test.pl JPEG PNG TIFF GIF XBM XPM BMP }}} == # 기타 & Comments == * [http://advent.perl.kr/2011/2011-12-15.html 열다섯번째 날: 한 이미지 안에 들어있는 사진들 추출하기 - Prima 모듈 | 2011 Seoul.pm 펄 크리스마스 달력] - 애초에 이 모듈을 찾게 된 이유 :-D
Prima는 또 언제 손대셨네용~
아, 사진 여러 개 묶어 한 사진으로 만든 걸 쪼개고 싶은 때가 있었는데 너무 귀찮아서 방법이 없을까 하다가ㅋㅋ 하루 쓰고 끝났죠.
음 뭔진 몰라도 전 그냥 cpan Prima 해서 설치해봤더니 잘 설치 되는 것 같네요?
: 거 참 제 컴퓨터가 도대체 뭐가 꼬여 있는건지ㅋ 영문을 모르겠군요. 저도 분명히 전에는 아무런 문제 없이 설치가 잘 되었었는데.
이렇게 펄 유저들의 덕력은 널리 알려지고...
: ㅋㅋㅋㅋㅋㅋㅋ
----
---- [[컴퓨터분류]]
Perl/Prima
페이지로 돌아가기 |
다른 수정본 보기