일정 기간 동안 swf 동영상의 상태를 캡처하고 캡처하여 서버에 jpg로 저장하는 것이 가능한지 궁금합니다.SWF에서 애니메이션 시퀀스를 JPEG로 내보내기
AS3에는 새로운 com.adobe.images.JPGEncoder 클래스가 있지만 작업을 수행 할 수 있지만 시퀀스를 캡처 할 수 있습니까? 비디오 나 애니메이션으로 되돌릴 수 있기를 희망합니다.
swf를 비디오에 프로그래밍 방식으로 인코딩하는 다른 방법이 있습니까?
일정 기간 동안 swf 동영상의 상태를 캡처하고 캡처하여 서버에 jpg로 저장하는 것이 가능한지 궁금합니다.SWF에서 애니메이션 시퀀스를 JPEG로 내보내기
AS3에는 새로운 com.adobe.images.JPGEncoder 클래스가 있지만 작업을 수행 할 수 있지만 시퀀스를 캡처 할 수 있습니까? 비디오 나 애니메이션으로 되돌릴 수 있기를 희망합니다.
swf를 비디오에 프로그래밍 방식으로 인코딩하는 다른 방법이 있습니까?
JPGEncoder를 사용하기 전에 "화면 캡처"를 수행 했으므로 ENTER_FRAME 이벤트에서 화면을 캡처 할 수 있어야합니다. JPG 인코딩이 매우 빠르지 않으므로 작동하지 않을 수 있습니다.
내가 그렇게하는 방법입니다. 당신은 아마 당신의 ENTER_FRAME 이벤트 핸들러에서 호출이를 확장 한 다음 다른 파일 이름에 파일을 저장할 수 있습니다
var fileReference:FileReference = new FileReference();
// Capture the BitmapData of the stage for example
var captureMovieClip:DisplayObjectContainer = stage;
var stage_snapshot:BitmapData = new BitmapData(captureMovieClip.width, captureMovieClip.height);
stage_snapshot.draw(captureMovieClip);
// Setup the JPGEncoder, run the algorithm on the BitmapData, and retrieve the ByteArray
var encoded_jpg:JPGEncoder = new JPGEncoder(100);
var jpg_binary:ByteArray = encoded_jpg.encode(stage_snapshot);
// save
fileReference.save(jpg_binary, "screenshot.jpg");
: 참고로, 여기 (하나의 스크린 샷에 대한)이 작업을 수행하는 코드입니다. 스테이지 대신에 다른 표시 객체를 사용할 수도 있습니다.
이것이 얼마나 빨리 실행되는지는 모르겠지만 프레임 속도를 낮춰야하므로 ENTER_FRAME이 그렇게 많이 호출되지는 않지만 JPG 렌더링에서 품질이 떨어질 수 있습니다.
줄의 품질을 낮추면 : new JPGEncoder(100)
을 100에서 낮은 값으로 설정하면 jpeg의 파일 크기를 줄일 수 있지만 압축시 더 많은 오버 헤드가 발생할 수 있습니다.