AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bild als String übertragen?

Ein Thema von LDericher · begonnen am 12. Dez 2008 · letzter Beitrag vom 13. Dez 2008
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: Bild als String übertragen?

  Alt 12. Dez 2008, 20:15
Delphi-Quellcode:

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;
Das geht genauso wie deins, Deddy
Gelöst!

Thx vom LDer!
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#22

Re: Bild als String übertragen?

  Alt 12. Dez 2008, 20:27
Meines ist schon schneller, gelle.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#23

Re: Bild als String übertragen?

  Alt 12. Dez 2008, 20:49
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: Bild als String übertragen?

  Alt 12. Dez 2008, 21:00
Tun wir doch?
Der Threadersteller hatte vorgegeben, dass es per String sein soll. Was weiß denn ich warum
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#25

Re: Bild als String übertragen?

  Alt 13. Dez 2008, 12:45
Ich bin so weit durch damit:
Angelegt zwei Units, mit denen sich Grafiken in Strings verwandeln lassen.

LDer.
Angehängte Dateien
Dateityp: pas jpegstringutils_591.pas (1,8 KB, 5x aufgerufen)
Dateityp: pas bitmapstringutils_135.pas (1,8 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#26

Re: Bild als String übertragen?

  Alt 13. Dez 2008, 13:06
Nochmal verfeinert: Bei beiden Units habe ich nun BASE64-Strings aktiviert.
Also BitmapToBaseString/JPEGToBaseString liefern nun die kleinsten Daten.
Angehängte Dateien
Dateityp: rar graphical_strings_190.rar (5,7 KB, 17x aufgerufen)
Dateityp: zip graphical_strings_998.zip (5,9 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#27

Re: Bild als String übertragen?

  Alt 13. Dez 2008, 15:58
Zitat von Luckie:
Also irgndwie macht ihr da Quatsch. Mit den Sockets kann man auch binäre Daten übertragen, da bin ich mir ziemlich sicher.
Da hat er recht, einfach mal Delphi-Referenz durchsuchenSendBuf verwenden, erspart das unnötige hin und her rechnen


Edit:
Delphi-Quellcode:
for i := 0 to a-1 do
   result := result + IntToHex(buffer[i], 2);
Aua, das tut dem Speichermanager richtig weh...

Delphi-Quellcode:
for i := 0 to a-1 do
   AppendStr(Result, IntToHex(buffer[i], 2));
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#28

Re: Bild als String übertragen?

  Alt 13. Dez 2008, 18:19
Es gibt ja auch den TStringStream.
Damit wird's kurz & knackig:
Delphi-Quellcode:
function BitmapToString(Input: TBitmap): String;
var ms: TStringStream;
begin
  ms := TStringStream.Create('');
  try
    Input.SaveToStream(ms);
    Result := ms.DataSring;
  finally
    ms.Free;
  end;
end
Für die Umkehrfunktion bitte beachten, dass man dem StringStream im Konstruktor einen Inhalt mitgeben kann.
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#29

Re: Bild als String übertragen?

  Alt 13. Dez 2008, 21:29
Was nichts daran ändert, dass es keinen Sinn macht hin und her zu rechnen.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#30

Re: Bild als String übertragen?

  Alt 13. Dez 2008, 21:40
Zitat von Sunlight7:
Delphi-Quellcode:
for i := 0 to a-1 do
   AppendStr(Result, IntToHex(buffer[i], 2));
Zitat von SysUtils.pas:
Delphi-Quellcode:
procedure AppendStr(var Dest: string; const S: string);
begin
  Dest := Dest + S;
end;
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 05:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz