|
이미지 파일 몇백개를 메모리에 로딩하고
1초에 24장씩 보여주는 프로그램을 작성중입니다
(이미지들을 애니메이션 처럼 보이게 만든다고 생각하면 될 듯...)
TBitmap을 이용해봤는데요,
640*480으로 메모리에 올라가는 부분은 1초에 80장정도까지 잘 보이네요.
그런데 문제는 이미지 양이 메모리를 넘어섰을 때 입니다.
이미지중에 가상메모리로 들어가는 부분은 1초에 3장정도밖에 볼 수가 없습니다.
(하드에서 메모리로 불러오는 시간이겠지요)
virtualalloc을 이용하면 가상메모리 페이징을 스스로 조절할 수 있다는 얘기를 들은 것 같은데
Help에서는 그 내용을 찾기가 힘드네요. 혹시 방법을 아시는 분이 계실지...
그리고, virtualalloc을 이용한다고 해도, virtual 메모리에 들어가는 것은 TBitmap의 객체이지
실제 픽셀들은 제가 메모리를 잡는게 아니라 Width와 Height를 정해주면
스스로 그 크기만큼 잡는거라 소용이 없지 않나하는 생각이...
하지만 virtualalloc을 이용할 수 있다면 TBitmap을 쓰지 않고 스스로 픽셀들을 배열에 저장해서라도
할 생각이 있습니다.
또는, 읽기 얼마전에 미리 해당 이미지를 엑세스 해서
불러 오려고도 했습니다만, 미리 이미지를 읽는 것에서 역시 느려지기 때문에 소용이 없네요 ^^;
액세스는 하되 읽어오는 것을 기다리지 않고 다음으로 넘어가버리는 방법이 있는지...
조언 부탁드립니다
|