2012-04-12 10 views
2

박사는 말한다 : OS X Lion x64에서 Flash Player 11에 120,000x120,000 픽셀의 BitmapData를 사용할 수없는 이유는 무엇입니까?

은 AIR 3 및 플래시 플레이어 11로 시작하는 BitmapData 객체의 크기 제한은 제거되었습니다. 비트 맵의 ​​최대 크기는 이제 운영 체제에 따라 입니다.

하지만 왜 120,000 x 120,000 px BitmapData 개체를 사용할 수 없습니까? 64 비트 커널을 사용하는 OS X Lion을 사용 중입니다.

이제 120,000^2는 14,400,000,000 픽셀을 차지합니다. 점유해야하는 픽셀은 34 비트 만 저장됩니다. 하지만 분명히 64 비트 정수를 가질 수 있습니까? 내가 놓친 게 있니? 그리고 "운영 체제에 의존"한다는 것은 무엇을 의미합니까? 방법?

+2

이 비트 맵 데이터는 54GB를 차지합니다. 시스템이 64 비트이지만, 많은 양의 메모리를 작동하지 못할 수 있습니다. – kirilloid

답변

8

비트 맵 데이터 픽셀이 단일 비트와 언제 같습니까? 색상 정보를 다루므로 각 픽셀은 적어도 uint (=> 크기 : 32 비트 또는 4 바이트)을 차지해야합니다.

어느 한 후, 메모리 소비가 실제로

120000^2 * 4 => 57,600,000,000 Bytes => ap. 53,6 GB 

이다 또한주의 것을 의미 Number 64 비트 데이터 형식, intuint이없는이된다.

다른 방법으로 데이터를 구성하는 것이 좋습니다.
큰 그림을 다루는 경우 적당한 크기의 부분으로 분할해야합니다. 한계가 해제되었을 수도 있지만 최대로 억제하는 것이 좋습니다. 스테이지 크기의 4 배 (적당히 부드럽게 스크롤하기에 충분히 작으며 스테이지에 물건을 놓을 필요가 없도록 충분히 크다).

저장하려는 실제 픽셀 정보가 아닌 경우 ByteArray를 사용하는 것이 좋습니다.

+0

답변 해 주셔서 감사합니다. 그것을 분명하게했다. 10m x 10m 옥외 배너에 인쇄 될 인쇄 품질의 이미지를 생성하기 위해 Flash를 만들어야합니다. 나는 간단한 계산을했는데, 10m를 커버하기 위해 300dpi에서 12 만 픽셀을 주었다. Flash에서 벡터 그래픽을 출력 할 수 있다면 다른 경로를 따라 갔을 것입니다. –

+0

크기가 300 dpi가 필요하지 않은 인쇄물 - 멀리서보아야합니다! 그런 대형 배너를 인쇄 할 때 인쇄 공장에서 일하면서 이미지를 10 dpi로 축소했습니다 ... – weltraumpirat

+0

게다가 플래시에서 포스트 스크립트까지도 출력 할 수 있습니다 - 텍스트입니다! http://www.simonheys.com/2007/06/05/postscript/ – weltraumpirat

1

실제로 주소 지정 가능한 크기의 양에는 여러 가지 소프트웨어 및 하드웨어 제한 사항이 있습니다. 32/64 비트 아키텍처를 제외하고, 몇몇 다른 사람이있어 :

  • 메모리 컨트롤러 총 한계 RAM 슬롯의 양이
  • 일부 메모리 관리 계층 구현 PAE 같은 MAX RAM 모듈 크기를 X
  • 을 (+ CPU에 따라 달라집니다 OS)은 주소 지정이 가능한 가상 메모리의 양을 늘릴 수 있지만 실제 메모리의 최대 크기는 동일하게 유지됩니다.
  • 마케팅/소프트웨어 OS 제한 사항 (동일한 위키 문서의 Windows 버전은 2.5 참조);

웹 상태에서만 발견 한 정보 인 Mac OS X Lion (서버가 아님)의 소프트웨어 제한은 64GB입니다. 물리적으로 기계를 사용하는 것보다 더 많은 메모리를 할당하려는 시도는 거의 성공하지 못했습니다.

+0

64Gb 제한이 올바르지 않습니다. OS X 클라이언트는 (적어도 테스트하기에 적합한 하드웨어가없는 곳에서) 주소 96GB (16GB 모듈이있는 Mac Pro에서 테스트 됨) 일 수 있습니다. 개인적으로, Mac Pro의 5500 칩셋이 OS가 아니라 주소 지정이 가능한 RAM의 양을 제한한다는 것을 알고 있습니다. – AlBirdie

+0

이것은 공식적인 정보가 아닌 일부 사용자의 답변입니다. 그럼에도 불구하고 64GB는 비트 맵 크기보다 크기 때문에 실제로는 의미가 없습니다. – kirilloid

0

어떤 종류의 것을 저장 하시겠습니까? 뭔가 생식 적으로? 고정 무작위 시드를 사용하는 시스템을 만들고 저해상도에서보기/생성 무언가를 만들어야한다고 생각합니다. 동일한 동작을 반복 할 수 있어야합니다. 아마도 (사용자 정의) 동작을 저장하여 해당 지점으로 이동해야합니다. 당신이 가지고 있다면 스케일 변수를 적용하고 타일 당 렌더링 타일을 큰 엉덩이 캔버스 주위에 얻을해야합니다.이런 종류의 시스템은 빌드하는 데 시간이 걸리고 드로잉해야 할 것들이 너무 큰 경우 문제가 발생할 수 있습니다.
명시된 바와 같이, 그런 인쇄물의 경우 고해상도는 필요하지 않습니다. 그 옆에있는 물론, 어쨌든 그 거대한 크기를 얻는 것이 어려울 것입니다.