Maksymalny rozmiar bitmapy

0

Witam! Czy ktos wie jaki może być maksymalny rozmiar bitmapy pamięciowej w Delphi? Mam ogromną ilość obrazków 256x256px i potrzebuje to połączyć w całość i zapisać jako jpeg. Czy idzie to zrobić w delphi. Czy sa jakieś ograniczenia w ilości pikseli na bitmapie albo w ilości miejsca zajmowanego przez taką bitmape w pamięci? Ewentualnie najprostszym rozwiązaniem byłoby znalezienie programu który to już robi. Zależy mi żeby wszyskie pliki połączył w całośc naraz, bo są w jpeg i łączenie po kawałku i zapisywanie w jpeg pogarszałoby ich jakość, a zapisywanie w bm nie wchodzi w gre bo to sa ogromne rozdzielczości. PLiki mam w formacie X-Y.jpg. Ma ktoś jakiś pomysł? Dzieki

0

Aha...i zdjęcia nie zachodzą na siebie

0

Chyba jedynym ograniczeniem są możliwośći twojego komputera. Kiedyś pisałem podobny prgram do twojego, z tą różnicą, że działał w odwrotną stronę i mimo, że bitmapa była spora (ok. 10 000 x 10 000), to po prostu troche to trwało.

0

No ja potrzebuje tak plus minus 60000x26000... ;-P

0

Mam problem... jak pisze
B := TBitmap.Create;
B.Width:=60000;
B.Height:=26000;

Wywala mi komunikat, że
"Parametr jest nieprawidłowy"
jak ustawie rozmiar na np 10000x10000 to wywala komunikat:
W magazynie za mało miejsca aby wykonać to polecenie.

Mam 768MB ramu. Jak zwiększyśc dostępny rozmiar pamięci dla tego zadania, albo jak zrobić to w inny sposób?

0

:| Powaliło cię? Chcesz w pamięci utworzyć bitmapę mającą 4,5 GB? Nawet jeśli stworzysz wynikowy obraz używając cache'owania danych na dysku, to kompletnie nikt tego twojego JPGa nie odczyta. Bo co z tego, że będzie zajmował "zaledwie" x-set MB po skompresowaniu, skoro JPEGa przed wyświetleniem trzeba zdekompresować [glowa]

0

Fazy emocjonalne podczas czytania: :| -> :-| -> :-) -> :-D -> [green] -> [rotfl] . Czy masz zamiar zbudować na kompie powierzchnię księżyca? Rozmiar tej bitmapy i tak przekracza możliwości kart graficznych, tak więc rysuj na bieŻąco (Boże, widzisz takie błędy i nie grzmisz) tylko wyświetlany fragment obrazu. Po co alokować całą bitmapę skoro monitor pokazuje na raz tylko fragment.

0

Adam...mi chodzi o to zeby z tych kawałków sklecić całą bitmapę i ją ZAPISAĆ. A po co? Np po to zeby to potem wywołać w odpowiednio dużym formacie...

0

Wywołać? Toż to daje w fotograficznej jakości 2400dpi: 60 000px/(2400px/1cal) = 1cal * 60 000px/2400px = 1cal * 25 = 25,4mm * 25 = 635mm = 0,635m

Chcesz zrobić wydruk zdjęcia o super fotograficznej jakości i wymiarach 0,635x0,275m?

0

szczawik...rozdzieczośc w fotolabach to 300dpi

0

Pokombinuj. Będzie trochę zabawy. Buduj bitmapę rzędami.

Tworzysz tablicę

// N - liczba bitmap
Line :array [1..256*N] of record R, G, B :Byte;

Ze wszystkich pierwszych lini bitmap tworzysz jedną linię i zapisujesz ją do pliku.
Ze wszystkich drugich linii bitmap tworzysz jedną linię i zapisujesz ją do pliku.
(...) i tak do skutku.

user image

0
Chriss napisał(a)

szczawik...rozdzieczośc w fotolabach to 300dpi

Wiem, ale chciałem założyć przypadek ekstremalny. Chcesz powiedzieć, że zamierzasz zrobić wydruk 5x2,2m w jakości fotograficznej? Co to ma być? Chyba zbyt dosłownie potraktowałeś gdzieś oznaczenie 'wallpaper for Windows' [rotfl]

Przy tapetach to zszedłbym do 75px na cal, bo z odległości większej niż przykładanie nosa do tapety widać nie będzie, a masz szesnastokrotnie mniej pikselków.

0

JPG o rozmiarze np. 1GB nie jest niczym dziwnym. Mój znajomy grafik takie pliki musi przygotowywać do wydruku w formacie A2. I czasem jakość musi być fotograficzna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1