728x90
최근에 계속 IDL 8.0 이상 버전의 새로운 그래픽 기능들에 관하여 다루고 있는데요. 오늘은 이렇게 구현한 그래픽 컨텐츠를 그림 파일로 저장하는 방법을 소개하고자 합니다. 기존의 다이렉트 그래픽 체계에서는 'WRITE_'로 시작하는 프로시저들이 주로 사용되었지만, 새로운 그래픽 체계에서는 객체 지향적인 방법으로 Save라는 메서드를 사용합니다. 표현은 거창하지만 사용법은 매우 간편합니다. 사실 앞서 언급한 'WRITE_'로 시작하는 명령들보다도 훨씬 간단합니다.
그러면 바로 전 게시물에서 CONTOUR 함수의 기능을 소개할 때 사용했던 예제의 그림을 저장해보도록 하겠습니다. 그림을 그리는 명령들은 이미 소개되었으므로 그냥 아래와 같이 나열하겠습니다. 당연히 이 때 그려지는 그림도 같은 게시물에 이미 소개된 그대로입니다.
win = WINDOW(window_title='Contour Example', dimensions=[500, 500])
data = 110*HANNING(300, 300)
con = CONTOUR(data, C_VALUE=[20, 40, 60, 80, 100, MAX(data)], C_LABEL_SHOW=1, RGB_TABLE=34, /CURRENT)con.FILL = 1
con.C_COLOR = [50, 90, 140, 210, 250]
con1 = CONTOUR(data, C_VALUE=[20, 40, 60, 80, 100, MAX(data)], C_LABEL_SHOW=1, /OVERPLOT)
con1.C_LINESTYLE = 1
con1.C_THICK = 2
con1.LABEL_COLOR = 'Black'
con1.FONT_STYLE = 1
이렇게 그려진 그림을 저장하려면 다음과 같은 내용의 한 줄만 추가하면 됩니다. 여기서 바로 다음과 같이 Save라는 메서드를 사용합니다. 이 때 확장자는 일단 PNG를 사용해보았습니다.
win.Save, 'test_contour_save.png'
이 명령이 실행되고나면 작업 디렉토리상에 이 이름의 PNG파일이 생성되어 있을 것입니다. 이걸로 작업이 끝입니다. 매우 간단하죠. 여기서는 PNG로 테스트해봤지만 그 외에도 BMP, GIF, JPG 등의 아주 보편적인 형식들 뿐 아니라 EPS, PS, PDF 등과 같은 형식들도 지원됩니다. 그냥 파일명의 확장자에 해당 문자열만 붙이면 됩니다. 예를 들어 이번에는 PDF로 저장을 해볼까요? 그러면 같은 요령으로 다음과 같은 한 줄의 내용만 실행하면 됩니다. 그러면 마찬가지로 작업 디렉토리상에 PDF파일이 생성되어 있을 것입니다. 이 파일을 Acrobat와 같은 전용 리더로 열어보면 제대로 PDF의 형식으로 만들어져 있음을 알 수 있습니다.
win.Save, 'test_contour_save.pdf'
참고로 여기서는 Save 메서드를 win, 즉 예제코드의 맨 첫 줄에서 WINDOW 함수를 이용하여 생성했던 윈도우에 대하여 적용했습니다. 사실 새로운 그래픽 체계에서는 WINDOW뿐 아니라 PLOT, CONTOUR 등과 같은 모든 그래픽 함수들에도 이 Save 메서드가 존재합니다. 따라서 WINDOW 함수로 따로 윈도우를 생성하지 않고, 그냥 PLOT, CONTOUR 등과 같은 그래픽 함수로 바로 그림을 그렸을 경우에는 그냥 이 함수로 그려진 객체에 대하여 Save 메서드를 바로 적용하면 됩니다. 따라서 지금의 예제와 같은 경우에도 CONTOUR 객체인 con에 대하여 Save 메서드를 적용해도 상관이 없습니다.
con.Save, 'test_contour_save.png'
사실 새로운 그래픽 체계의 함수들로 그림을 그리면 다음 그림과 같은 인터페이스상에 그 결과가 표출됩니다. 그래서 이 인터페이스상의 하단부 왼쪽에서 두번째에 저장 버튼이 있는데, 이 버튼을 눌러도 그림의 내용을 파일로 저장할 수 있습니다. 그냥 인터액티브하게 할거냐 프로그램에 의해서 할거냐의 차이라고 보면 됩니다.
그리고 마지막으로 이 Save 메서드를 적용할 때 사용 가능한 키워드들 중 RESOLUTION이란게 있습니다. 이는 생성될 그림파일상의 해상도를 DPI(Dot Per Inch) 단위로 나타내는데, 기본 설정은 600입니다. 따라서 생성된 그림 파일이 너무 크다면 이 값을 좀 줄여주면 됩니다.
LIST
'IDL > New Graphics' 카테고리의 다른 글
새로운 그래픽의 IMAGE 기능 소개 [1] (0) | 2011.07.12 |
---|---|
새로운 그래픽의 Contour 기능 소개 [3] (2) | 2011.06.27 |
새로운 그래픽의 Contour 기능 소개 [2] (0) | 2011.06.21 |
IDL 8.1로 만들어본 MP4 동영상입니다 (0) | 2011.06.16 |
새로운 그래픽의 Contour 기능 소개 [1] (0) | 2011.06.14 |