AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme bei TImage unter Android

Ein Thema von gro · begonnen am 29. Mär 2021 · letzter Beitrag vom 30. Mär 2021
Antwort Antwort
gro

Registriert seit: 9. Jul 2004
Ort: Kärnten
17 Beiträge
 
Delphi 10.3 Rio
 
#1

Probleme bei TImage unter Android

  Alt 29. Mär 2021, 12:27
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);
Peter (EDV = Ende der Vernunft)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
2.940 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Probleme bei TImage unter Android

  Alt 29. Mär 2021, 12:51
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...).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.667 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Probleme bei TImage unter Android

  Alt 29. Mär 2021, 12:59
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (29. Mär 2021 um 19:05 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.048 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Probleme bei TImage unter Android

  Alt 29. Mär 2021, 18:34
Kann Himitsu nur zustimmen!
Nimm TBytes oder einen Byte Stream...
  Mit Zitat antworten Zitat
gro

Registriert seit: 9. Jul 2004
Ort: Kärnten
17 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Probleme bei TImage unter Android

  Alt 30. Mär 2021, 10:04
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
Peter (EDV = Ende der Vernunft)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf