BLOG main image
분류 전체보기 (63)
(17)
성윤이 (0)
(5)
일상 (10)
낙관주의 (3)
삽질 (9)
웹사업개발팀 (5)
14661 Visitors up to today!
Today 28 hit, Yesterday 19 hit
daisy rss
tistory 티스토리 가입하기!
'2008/02'에 해당되는 글 3건
2008/02/28 23:24
플래시플레이어의 NetStream과 Video오브젝트를 이용해서 재생되는 동영상을
bitmap으로 추출하여(Bitmap, BitmapData이용), map 형식으로 작은 영역에 뿌려주는걸 구현중이다.
큰 영상을 원본사이즈로 보여줄때 재생영역에 영상의 일부만 보이기 때문에
전체 영상의 맵을 보여주고, 영역을 드래그해서 재생영역에 보여질 부분을 선택할 수 있게 하기 위해서.

그런데 bitmap.draw(video); 를 통해서 뿌려진 동영상의 크기, 가로세로비가 엉망이다.

크기를 맞추려고 아래와 같이 하였다.

1. BitmapData의 크기를 소스영상의 크기와 일치시킨다.
2. BitmapData를 디스플레이할 영역인 Bitmap의 크기를 보여주려는 크기로 만든다.
    이때, BitmapData와 Bitmap의 가로세로비는 똑같다.

그런데 Bitmap영역에 보여지는 동영상이 찌그러져 보인다.
희안하게 찌그러진 결과 영상의 가로세로비가 항상 동일하다.
크기가 다른 동영상을 넣어도 항상 같은 가로세로비로 보여진다.

저녘내내 헤매다 해결책을 찾았다.
Video 오브젝트를 만들때, 영상의 사이즈와 같은 크기로 만들면 Bitmap영역에 의도한대로 뿌려진다.
원인은 Video 오브젝트의 생성당시 크기가 지정이 되는데,
영상을 재생할때 영상의 크기에 맞게 Video오브젝트를 조절하더라도
Video 오브젝트 크기값자체가 변하는게 아니고, scale을 변경시켜서 보여준다는거다.
해서 Video를 이용해서 Bitmap을 Draw하면 항상 Video의 초기크기를 기준으로 비트맵사이즈가 나온다.
그래서 동영상의 실제크기와 상관없이 동일한 가로세로비로 그려지는거다.

프로그래스바 구현할때 클릭위치를 구할때 비슷한 문제로 한참을 고생했는데,
백터기반의 툴이라 그렇게 구현되어있어야 하는지 모르겠지만 정말 헷갈린다.
크기를 바꾸면, width, height 는 바뀐값으로 반환하면서
click position을 참조하면 원래 크기 기준으로 반환을 한다. - -

음. 원인은 찾았는데...
소스를 고치려니 손댈데가 너무 많다.
오늘은 이정도로 정리하고 내일 해야겠다.

....

아래와 같이 Video의 초기 크기와 BitmapData의 초기 크기를 일치시키면 간단히 해결이 된다.

var bitmap = new BitmapData(video.width/video.scaleX, video.height/video.scaleY);
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://10year.tistory.com/trackback/102
Name
Password
Homepage
Secret
2008/02/04 20:05
php-pgsql (rpm)을 깔아야 한다.
이걸 깔면 /etc/php.d/ 에 pgsql.ini 이 생기고, 여기서 pgsql.so를 로드한다.
내게 아직(어쩌면 영원히) 리눅스 서버는 미로다. - -
Trackback Address :: http://10year.tistory.com/trackback/98
Name
Password
Homepage
Secret
2008/02/01 19:14

AS2와 AS3은 껍데기는 비슷하지만,
그 기반구조는 완전 다른 종족인듯하다.
괴롭다. - -

[ActionScript2 코드]
stage.createEmptyMovieClip("mc_sound", stage.getNextHighestDepth());
mc_sound = stage.mc_sound;
mc_sound.attachAudio(ns);
sound = new Sound(mc_sound);
sound.setVolume(vol);

          

[ActionScript3 코드]
ns.soundTransform.volume = vol;

          

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://10year.tistory.com/trackback/97
Name
Password
Homepage
Secret
prev"" #1 next