안녕하세요.
프로그램 개발중에 중요한 문제가 발생했습니다.
대용량(50~100MB)의 이미지를 처리해야 되는데, 메모리 문제로 프로그램이
죽는 현상이 발생합니다.
그래서, 윈도우의 가상메모리를 이용하려 합니다.
윈도우의 가상메모리에 이미지를 로드하여 사용하고 싶은데,
가상메모리를 이용하는 방법 좀 알려주세요.
또는 대용량의 이미지를 무리없이 처리하는 방법이 있으면,
조언 부탁 드립니다.(포토샵처럼요...)
참고로, 전 C++빌더를 사용합니다.
부디...
예전에 윈도3.1때는 델파이1가지고 했었는디...
지금도 그게 되는지 모르겠네용 아마도 안될듯싶습니다.
하지만 그건 별로 중요하지 않습니다. 대부분 포토샵, 코렐드로나 아래한글, MS워드같은 프로그램들 보면 자기네만의 스와핑을 구현해서 사용합니다. 대표적으로 MS워드같은경우는 별도의 스와핑파일을 생성해서 사용하는데.... 그 파일구조가 DB와 같은식으로 되어있습니다. 즉 레코드와 필드 구조로 되어있는데...
한 레코드를 1024Byte라하고 한 레코드에는 4개의 필드가 있다고 치고...
내용을 읽을때는...
각 레코드의 마지막 몇바이트에는 다음 레코드의 위치를 써 놓습니다. 그리고 그 레코드로 가서 읽고 그 레코드의 마지막 몇 바이트를 읽어서 또 그 다음 레코드를 읽어옵니다.
레코드를 마지막에 하나더 추가하는건 어렵지 않은데..그러면.. 중간에 끼워넣으려면?
마지막에 하나 추가한후 중간에 끼워넣으려는 위치의 앞레코드를 찾아서 그 레코드의 마지막몇바이트에 추가한 레코드의 위치를 써넣고 추가한 레코드의 마지막 몇바이트에는 다음 레코드의 위치를 써넣습니다.
뭔소린지 이해하시죠?
워드같은경우는 스와핑뿐만아니라.. DOC파일도 이런 구조로 되어있습니다.
그래서 워드작업을 하면서 중간에 내용을 막 써넣어도 금방금방 파일이 업데이트되죠...
포토샵이같은 이미지프로그램을 비롯해서 스와핑을 하는 대부분 프로그램들이 이런 방법을 사용합니다.
그럼
평안하시길~
미미 wrote:
> 안녕하세요.
> 프로그램 개발중에 중요한 문제가 발생했습니다.
>
> 대용량(50~100MB)의 이미지를 처리해야 되는데, 메모리 문제로 프로그램이
> 죽는 현상이 발생합니다.
>
> 그래서, 윈도우의 가상메모리를 이용하려 합니다.
> 윈도우의 가상메모리에 이미지를 로드하여 사용하고 싶은데,
> 가상메모리를 이용하는 방법 좀 알려주세요.
>
> 또는 대용량의 이미지를 무리없이 처리하는 방법이 있으면,
> 조언 부탁 드립니다.(포토샵처럼요...)
>
> 참고로, 전 C++빌더를 사용합니다.
>
> 부디...