MATSC로 개발할 것을 생각했기에 ActionScript 2.0 API를 찾아보았습니다. 그런데, adobe.com에는 마땅하게 전체를 살펴볼 API가 안보이더군요. Flex와 관련된 API는 쉽게 볼 수 있는데, ActionScript 2.0과 관련해서는 영 안보이네요. -_-;; 결국 brajeshwar.com에서 찾았습니다.
ActionScript에서는 이미지를 표현하기 위한 클래스 flash.display.BitmapData라는 클래스를 가지고 있더군요. BitmapData는 pixel데이터(32bit-integers)를 가지고 있어서 이미지를 표현할 수 있습니다. BitmapData에서 이미지 파일을 업로드할 수 없으므로 MovieClipLoader로 이미지를 MovieClip에 로딩한 다음에, 이를 캡쳐하는 방법으로 이미지를 BitmapData로 로딩할 수 있습니다.(MovieClip 생성관련 글)
_movieClipLoader = new MovieClipLoader();
_movieClipLoader.loadClip(imageFilteName, _holderMovieClip);
...
_bitmap = new BitmapData(...);
_bitmap.draw(_holderMovieClip);
_movieClipLoader.loadClip(imageFilteName, _holderMovieClip);
...
_bitmap = new BitmapData(...);
_bitmap.draw(_holderMovieClip);
그리고, flash.filters.* 를 살펴보면 BitmapData에 적용할 수 있는 필터들도 있습니다. Bevel, Bitmap, Blur, Glow 등의 필터들이 존재하고 있구요. flash.geom.* 을 이용하면 여러가지 도형을 이미지 위에 그릴 수도 있습니다. (필터와 관련된 Adobe의 문서들)
문제는, 이렇게 생성된 이미지를 서버로 전달하는 방법인데요. 마땅한 방법이 잘 안보이네요.
인터넷으로 검색을 해보니 다음과 같은 방법이 있다고 하더군요.
- BitmapData를 로컬(Client)에 이미지로 저장한 다음에 서버에 파일을 전송한다.(AS3에는 JPEGEncoder가 있군요. AS2에서의 Storing and displaying image 글)
- 또, 하나의 방법으로는 BitmapData의 Pixel 데이터를 서버에 전송한 후 이미지로 만들어 클라이언트에 보여준다.
여기까지 조사를 하고 쉽게 만들 수 없겠다는 생각이 들어서 일단은 여기까지하고 마무리져야 겠네요.
좋은 방법 있으시면 나누어 주세요~~
P.S. 샘플입니다.