GMT

투명 이미지 만들기 [gdal]

작성자
heukchoo
작성일
2021-01-17 20:14
조회
1120
 

본 내용은 GMT가 아니라 pscovert에서 소개한 gdal을 이용해서 투명 이미지를 만드는 방법이다.
정확하게는 배경을 투명하게 만드는 방법이다.

 
GMT에서는 그림을 만드는 툴의 경우 -t 옵션으로 투명도를 조정할 수 있다.
Phostscript 파일에서는 투명 효과가 확인되지 않고 psconvert로 PDF 등의 다른 포맷으로 변환해서 확인할 수 있다.
그러나 -t 옵션을 이용한 투명도는 GMT 툴로 그려진 부분만 조정 가능하고 배경은 투명도를 조정할 수 없다.

 
단순히 이미지 파일에서 바탕(보통 흰색)을 투명하게 만드는 것은 '포토샵' 같은 프로그램으로도 충분히 가능하다.
그러나, 앞서 소개한 psconvert와 gdal을 이용하여 좌표정보가 들어있는 geotiff와 같은 포맷의 이미지를 제작한 뒤 포토샵으로 투명화 작업을 하면 geotiff의 공간정보 속성을 읽어버리게 된다.

여기서 핵심은 geotiff의 공간정보 속성을 유지한 채 투명 적용을 하는 것이다.

이번 페이지에서 소개하는 gdal 명령어를 사용하면 이것이 가능하다.

 




다음은 pscoast로 그린 회색의 육지 그림을, psconvert로 geotiff로 변환한 뒤, gdal 명령어를 사용하여 흰색의 바탕(바다) 부분을 투명하게 만드는 스크립트이다.
gmt pscoast -JM15c -R125/128/33/36 -Dh -G150 -Bg10 --MAP_FRAME_TYPE=inside > test.ps

gmt psconvert test.ps -W+g

gdalwarp -srcnodata 255,255,255 -dstalpha -of vrt test.tiff test_alpha.vrt

gdal_translate -co compress=LZW test_alpha.vrt test_transp.tiff
 

첫 단계에서 gdalwarp 명령으로 마스킹(알파) 파일을 만들었다.

입력 파일은 test.tiff(geotiff 포맷)이고, 생성 파일은 test_alpha.vrt 이다. 파일명은 변경 가능하다.
-srcnodata 옵션으로 마스킹 하지않을 색(투명하게 할 색)을 설정하였다. (흰색을 RGB로 표현함)

두번째 단계에서 gdal_translate 명령으로 마스킹에 해당하는 부분을 제외하고 투명하게 만들었다.
입력파일은 test_alpha.vrt 이고, 생성 파일은 test_transp.tiff 이다. 파일명은 변경 가능하다.
 

주의할 것은 마스킹(알파) 파일을 한 번 만든 다음, 다시 마스킹 파일을 만들기 전에 반드시 기존 마스킹 파일을 삭제해야 한다.

 
위 스크립트로 생성된 파일을 파워포인트의 스마일 도형 위에 올려서 투명 적용을 확인하였다.

 




 



 
geotiff 포맷 외에도 다른 이미지 포맷도 투명 변환이 가능하다.
위 스크립트를 활용하면 굳이 배경이 아니더라도 지정한 색을 투명하게 만드는 것이 가능하다.

 GDAL로 geotiff의 배경을 투명하게 만드는 것은 유용하게 활용될 수 있다.
많은 GIS 프로그램이 geotiff 등의 공간정보 속성의 이미지를 지원한다.
이러한 GIS 프로그램들은 기능이 많아 무겁게 구동된다.
예로, 선박의 AIS 같은 대용량의 데이터를 화면에 띄우면, 메모리 과다 사용으로 로딩이 느리거나 프로그램이 다운될 수도 있다.

GMT는 매우 가벼운 프로그램으로 대용량 자료도 빠르게 처리하여 이미지를 생성 할 수 있다.

따라서 GMT를 이용하여 AIS 등의 선박 항로들을 그리고, geotiff로 변환한뒤 GDAL로 배경을 투명하게 하면 GIS 프로그램에서 용량이 가벼운 geotiff 이미지만 띄워서 확인할 수 있다.

단, 제작한 좌표계와 입력할 때 좌표계를 맞추어야 정확한 위치정보를 나타낼 것이다.

 

 
전체 0