2009-11-06 5 views
1

내 응용 프로그램에서 캔버스 객체의 높이는 90 픽셀 x & 너비 = 86400 픽셀입니다. [60 * 60 * 24] 초를 나타냅니다. 캔버스는 스크롤 가능하며 사용자는 그 안에 구성 요소를 추가하거나 삭제할 수 있습니다.캔버스의 스냅 샷을 만들 수 없습니다.

지금 전체 캔버스의 스냅 샷을 갖고 싶습니다. & 크기를 910x30으로 축소하여 다른 캔버스에 찍은 스냅 샷을 그립니다.

아무도 나에게 큰 구성 요소의 스냅 샷을 가져 오는 방법을 말해 줄 수 있습니까?

저는 BitmapData 객체에서 스냅 샷을 가져 오려고했지만 최대 너비는 2880이므로 전체 캔버스 스냅 샷을 제공 할 수 없습니다.

가능한 경우 다른 아이디어가 있습니까? 예, 알려주세요.

제안을 환영합니다.

+0

성별/픽셀 1 개? 아마 너/s 픽셀을 의미 할까? 아니면 초/픽셀입니까? –

+0

예, 해당 초/픽셀 :) – krishna

답변

0

큰 캔버스의 여러 스냅 샷을 찍은 다음 축소하고 다시 꿰맬 수 있습니다. 그러나 크기가 큰 구성 요소에 대한 모든 종류의 비트 맵 캡처는 매우 집중적 인 작업입니다.

0

캔버스에서 scaleX/scaleY 속성을 설정하여 910x30 크기에 맞춰 스냅 샷을 만들 수도 있습니다. 그렇게하면 Flash가 확장 될 것입니다.

2

아직 테스트하지는 않았지만 BitmapData를 모두 삭제하고 클라이언트 컴퓨터에서 바로 결과를 가져온 경우 어떻게해야합니까? 같은 : 또한

var imgSnapshot:ImageSnapshot = ImageSnapshot.captureImage(savableCanvas,72,new PNGEncoder(),false); 
      var bArray:ByteArray = imgSnapshot.data; 

      var fileRef:FileReference = new FileReference(); 
      fileRef.save(bArray,"mySavedImage.png"); 

, 귀하의 질문에 오타가, 86,400 픽셀을 처리 할 데이터의 많은의 지옥이고 당신은 아마 (일부 서버 측 코드와 타일 기술로이 문제를 처리해야한다 생각, Google지도) ...이 방법은 당신이 말을하는 경우 php, 당신 imagick 사용할 수있는 자르기 필요한 동적으로 만든 섹션. 이제 8,640 픽셀이라면 Google 코드에서 BitmapDataUnlimited를 살펴보십시오. 걱정하지 마세요, 상업적으로 친숙합니다. 그러나 캔버스의 상당 부분이 꽤 잘 관리되어야하고, 사용 직후에 폐기되어야하는 가격이 12k x 12k bitmapData 객체가 적어도 1GB의 메모리라고 판단되는 가격으로 제공됩니다.

관련 문제