![]() |
Probleme bei TImage unter Android
Folgendes Problem:
Ich habe eine Server - Clientanwendung Am Server wird ein Bild geladen und das via Tcp zum Client gesendet und soll dann in einem TImage angezeigt werden. So weit so gut, unter Windows funktioniert das ganze tadellos nur unter Android gibts ein Problem. Beim Laden des Bildes mit image1.Bitmap.LoadFromStream(aFileData); kommt es zu folgenden Fehler "Das Projekt hat die Exception-Klasse Segmentation fault(11) ausgelöst." und danach kommt "Im Projekt ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 9CC26762 beim Zugriff auf Adresse 00000000 aufgetreten." Hintergrund: Die Bilddaten werden als String durch die Gegend gesendt und die schauen im Debuger und Android eigentlich gut aus. Ich habe jetzt folgendes versucht. 1. Die Bilddaten zurück auf den Server gesendet und dort abgespeichert. Eregebnis: OK. Das Bild passt 2. Die Bilddaten lokal am Android-Device gespeichert. Ergebnis: Schrott. Die Datei kann mit dem internen Android-Bildbetrachter nicht angezeigt werden. Scheinbar habe ich da ein Problem mit den Strings. Nur wie könnte ich das lösen
Delphi-Quellcode:
var szScanData : String; szScanData := GetScanData; aFileData := TStringStream.Create(szScanData); aFileData.Position := 0; image1.Bitmap.LoadFromStream(aFileData); |
AW: Probleme bei TImage unter Android
Ich würde mit einem Hex-Editor die Ursprungsdatei mit dem lokal auf dem Android-Device vergleichen.
Mit dem GetScanData würde mich schon noch interessieren. Schickst du da Base64 kodierte Binärdateien? Du musst auch das Encoding der jeweiligen Plattform achten. Das ist ggf. unterschiedlich (ANSI; UTF-8; UTF-16...). |
AW: Probleme bei TImage unter Android
Binär-Daten durch einen "Unicode"-String zu jagen, wer kommt denn auf so eine saublöde Idee?
Als Base64 verpackt, oder Ähnliches, würde noch gehen, aber niemals Binärzeugs in einer StringVariable. |
AW: Probleme bei TImage unter Android
Kann Himitsu nur zustimmen!
Nimm TBytes oder einen Byte Stream... |
AW: Probleme bei TImage unter Android
Besten Dank für die Anregungen.
Habe das ganze auf TBytes umgestellt und das Encoding auf TEncoding.ANSI.GetBytes geändert und schon funktionier es. Anmerkung: Warum steht der Datenstream das Images in einen String? Weil das Image von einem Fremdsystem als Hexstring in der Form 00FF00D800FF..., geliefert wird und ich auf dieses System leider keinerlei Zugriff bzw. Einfluss habe. Aber besten Dank, Problem gelöst |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03: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