Jedrzej Dudkiewicz
5/8/2007 10:51:00 AM
> Witam!
> Mam nastepuj?cy problem. Tworze mape 2D, która bedzie mog3a bya
> przesuwana w dowolnym kierunku. Mapa ta zapisana jest w pliku o bardzo
> du?ej rozdzielczo?ci. Z tego powodu nie chcia3bym wczytywaa jej w
> ca3o?ci do pamieci a dopiero stamt?d rysowaa jej fragment na ekranie.
> Moje pytanie - czy jest jaki? sposób na wczytanie bezpo?rednio z pliku
> tylko fragmentu bitmapy czy musze to zrobia, ?e tak powiem "recznie",
> operuj?c na bajtach i przesuwaj?c sie o okre?lon? ich ilo?a w pliku
> (podejrzewam, ?e bedzie to bardzo wolne)
Proponuje zrobia tak: podziel obraz wej?ciowy krat? N na M pól. N i M
dobierz tak, ?eby na ekran wchodzi3o np. jedno pole. Nastepnie ka?de z tych
pól zapisz jako oddzielny obraz. Potem mo?esz wszystkie te obrazy zapisaa
jako jeden plik. Dzieki temu, aby odczytaa obraz, bedziesz potrzebowa3
jednego seek() i jednego read() (w C/C++, that is). Wad? rozwi?zania jest
to, ?e taki plik, otworzony w "normalnej" przegl?darce, nie bedzie
przypomina3 samego siebie. Mo?esz te? spytaa na grupie dot. grafiki (nie
znam ?adnej), czy jest ju? format pliku realizuj?cy co? takiego dla
dowolnych N i M - wówczas sprawa praktycznie sama sie rozwi?zuje.
JD