쓸만한 주저리

ASP에서 글씨를 그림으로 만들기 [ImageMagick 활용]

봄돌73 2011. 11. 10. 15:14

ImageMagick는 방대한 옵션을 가진 사용하기 까다로운 도구이다.

그 중에서도 한글 표현을 위해서는 좀 더 까다로운 과정을 거쳐야 한다.


1. 일단 ImageMagick을 설치하자.

http://www.imagemagick.org/script/binary-releases.php#windows

내려 받아서 서버에 설치하면 된다.

물론 ASP니까 VBScript용 OLE 어쩌구를 선택하고 설치한다.




2. 한글을 표현하려면 두 가지에 주의해야 한다.

-font와 -encoding (-encoding은 중요하지 않다. 변경)

예제)

<%@Language="VBScript" CODEPAGE="65001"%>

<%option explicit%>

<%

  response.charset="utf-8"

  session.codepage="65001"

  response.codepage="65001"

  Response.ContentType="text/html;charset=UTF-8"


  Dim objImg

  Set objImg = Server.CreateObject("ImageMagickObject.MagickImage.1")


  objImg.Convert "-background=lightblue","-fill=blue","-font=Gulim-&-GulimChe-&-Dotum-&-DotumChe","-encoding=Unicode","-pointsize=36","-size=320x","caption:한글 Test입니다.",server.mappath("test.jpg")


  Set objImg = Nothing

%>

<img src=test.jpg>


흔히 gulim.ttf 정도를 쓰면 폰트 파일이 지정이 되는데 2008부터는 폰트 파일 이름이 달라서 고생 좀 했다.

서버 시스템의 폰트 이름을 확인하려면 아래 명령어를 실행하면 된다.

설치할 때 Path를 잡아 주지 않았다면 설치된 폴더에서 실행하자.

convert -list font | more


처음에는 자체 포스트스크립트 폰트(한글 미지원)가 나오고, 이후 시스템에 설치되어 있는 폰트들이 나온다.

-family로 지정해서 사용하는 방법은 실패했다.

-font 방법이 성공해서 더 이상 실험해 보지 않는다.


-encoding이 unicode일 때 이미지 생성할 때 1분 12초가 걸렸고, wansung일 때 1분 8초가 걸렸다.

이 정도는 유의미한 차이가 없다고 볼 수 있고, 둘 다 느리기는 마찬가지다.

참고로, 예제의 짧은 문장이 아니라 200자가 넘는 상당히 긴 문장으로 실험을 했다.


Malgun-Gothic으로 -font를 변경하니 1초만에 결과물이 나온다.

예제의 Gulim-&-GulimChe-&-Dotum-&-DotumChe를 Malgun-Gothic으로 바꿔서 사용하시길.

2008에서 실험한 결과임을 상기하고 2003 이하에서는 각자 실험해서 사용하시길.