IDL/New Graphics

새로운 그래픽 체계의 그림 저장 기능

이상우_IDL 2011. 6. 22. 18:25
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