Napisałem program do mapowania w Delphi, w którym użytkownik może załadować obraz rastrowy w tle, który przechowuję w pamięci. W jednym przypadku użytkownik załadował z powodzeniem 44 MB BMP, ale program był powolny, a po wydrukowaniu (wydrukowałem dane wyjściowe) wystąpił błąd braku zasobów. Przekształciłem BMP na PNG (3 MB), a program działa znacznie lepiej i zadanie drukowania powiodło się.Efektywność korzystania z plików PNG i BMP z dużymi plikami
Ponieważ PNG musi zostać rozszerzony do formatu DIB o tym samym rozmiarze, dlaczego istnieje różnica w wydajności/zasobach? Jeśli cokolwiek, powinno to zająć więcej zadań i alokacji pamięci, aby załadować PNG. czego mi brakuje?
Ponieważ wydaje się, że nie ma żadnych oczywistych odpowiedzi, napiszę mały projekt demonstracyjny, abym mógł to zbadać dalej.
Czy jesteś pozytywny pliki BMP i PNG mają taką samą liczbę pikseli i BitsPerPixel? –
Co używasz do drukowania obrazu? Czy piszesz bezpośrednio na Printer.Canvas, czy używasz komponentu w raporcie takim jak QuickReport lub Rave? – rkawano
Francois: Tak, mam plik klientów i wypróbowałem go sam. rkawano: Drukuję na płytkach DIB, które wysyłam na płótno drukarki. – Mitch