![]() |
Bitmap Android zu groß
Hallo,
für die Darstellung eines Lastgangs erstelle ich ein Bitmap, welches je nach Anzahl anzuzeigender Werte und Breite eines Wertes sehr breit werden kann... Dann bekomme ich "Bitmap zu groß" als Fehlermeldung. Nun habe ich eine Funktion gebaut, welche die maximal mögliche Größe ermitteln soll, so etwa:
Delphi-Quellcode:
Das funktioniert auch, doch braucht das Erstellen des Bitmaps je nach Größe bis zu 3 sec bis der Error kommt und die nächstkleinere Variante probiert wird.
h := 1500; //Fix
i := 105; while i <> 0 do begin i := i - 5; try w := i / 10 * length(LP) + 20; testbmp := TBitmap.create(trunc(w), trunc(h)); break; except // Fehler abgefangen end; end; Gibt es eine direkte Funktion die maximale Größe eines Bitmaps im System abzufragen? Ciao Stefan |
AW: Bitmap Android zu groß
Delphi-Quellcode:
Je nach verwendeter Canvas-Klasse ergeben sich andere Werte.
var
bmp: TBitmap; begin bmp := TBitmap.Create(16, 16); Caption := bmp.Canvas.GetAttribute(TCanvasAttribute.MaxBitmapSize).ToString; bmp.Free; end; Auf Windows ist der Wert für TCanvasD2D für MaxBitmapSize gleich 8192, für den TCanvasGpu mit TCustomDX11Context ergibt sich ab FeatureLevel = D3D_FEATURE_LEVEL_11_0 (FeatureLevel abhängig davon, was die GPU unterstützt) der Wert 16384. Android verwendet wahrscheinlich dann den TCustomContextOpenGL? Dann erhält du den Wert für GL_MAX_TEXTURE_SIZE. Siehe auch: ![]() |
AW: Bitmap Android zu groß
Prima, danke, das klingt vielversprechend!
Auf einem Galaxy S10+ bekomme ich 16383 und auf einem Galaxy Tab A 8192. Was sollen mir nun diese Werte in Bezug auf die maximale Breite und Höhe des Bitmap sagen? Ciao Stefan |
AW: Bitmap Android zu groß
Huch, merke gerade, ich hatte im vorigen Post einen Satz nicht zuende geschrieben.
Ich interpretiere diesen Wert als maximal möglichen Wert für Höhe und Breite einer 2D-Texture, also deines Bitmaps. |
AW: Bitmap Android zu groß
Prima, vielen Dank!
Scheint zu funktionieren, ich passe die maximale Schrittweite für das Zeichnen eines Wertes nun anhand der Länge des Lastprofilarrays an, "Bitmap zu groß" habe ich nun nicht mehr bekommen :-) Und das geht vieeeel schneller als das erfolglose Testen der Bitmaperzeugung... Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz