![]() |
Re: Bild als String übertragen?
Delphi-Quellcode:
Das geht genauso wie deins, Deddy ;)function BitmapToString(b: TBitmap): String; var ms: TMemoryStream; a: Int64; i:integer; buffer: Array[0..1024] of Byte; begin result := ''; ms := TMemoryStream.Create; try b.SaveToStream(ms); ms.Position:=0; a := 1; while a <> 0 do begin a := ms.read(buffer[0], length(buffer)); for i := 0 to a-1 do begin result := result + IntToHex(buffer[i], 2); end; end; finally ms.Free; end; end; function StringToBitmap(Input:string):TBitmap; var P:TMemoryStream; I:integer; B:Byte; begin P:=TMemoryStream.Create; I:=1; while(I<=Length(Input))do begin B:=StrToInt('$'+copy(Input, I, 2)); P.Write(B, 1); inc(I, 2); end; P.Position:=0; Result:=TBitmap.Create; Result.LoadFromStream(P); P.Free; end; Gelöst! Thx vom LDer! |
Re: Bild als String übertragen?
Meines ist schon schneller, gelle. ;)
|
Re: Bild als String übertragen?
Also irgndwie macht ihr da Quatsch. Mit den Sockets kann man auch binäre Daten übertragen, da bin ich mir ziemlich sicher. Und wenn es schon als String sein muss, warum codiert ihr die Datei nicht in BaseXX oder so was?
|
Re: Bild als String übertragen?
Tun wir doch? :gruebel:
Der Threadersteller hatte vorgegeben, dass es per String sein soll. Was weiß denn ich warum :stupid: |
Re: Bild als String übertragen?
Liste der Anhänge anzeigen (Anzahl: 2)
Ich bin so weit durch damit:
Angelegt zwei Units, mit denen sich Grafiken in Strings verwandeln lassen. LDer. |
Re: Bild als String übertragen?
Liste der Anhänge anzeigen (Anzahl: 2)
Nochmal verfeinert: Bei beiden Units habe ich nun BASE64-Strings aktiviert.
Also BitmapToBaseString/JPEGToBaseString liefern nun die kleinsten Daten. |
Re: Bild als String übertragen?
Zitat:
![]() Edit:
Delphi-Quellcode:
Aua, das tut dem Speichermanager richtig weh...
for i := 0 to a-1 do
result := result + IntToHex(buffer[i], 2);
Delphi-Quellcode:
for i := 0 to a-1 do
AppendStr(Result, IntToHex(buffer[i], 2)); |
Re: Bild als String übertragen?
Es gibt ja auch den TStringStream.
Damit wird's kurz & knackig:
Delphi-Quellcode:
Für die Umkehrfunktion bitte beachten, dass man dem StringStream im Konstruktor einen Inhalt mitgeben kann.
function BitmapToString(Input: TBitmap): String;
var ms: TStringStream; begin ms := TStringStream.Create(''); try Input.SaveToStream(ms); Result := ms.DataSring; finally ms.Free; end; end |
Re: Bild als String übertragen?
Was nichts daran ändert, dass es keinen Sinn macht hin und her zu rechnen.
|
Re: Bild als String übertragen?
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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