AGB  ·  Datenschutz  ·  Impressum  







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

PictureToString ?

Ein Thema von MrKnogge · begonnen am 31. Mär 2006 · letzter Beitrag vom 8. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

PictureToString ?

  Alt 31. Mär 2006, 20:51
Hallo,

Ich würde gerne ein Bild in einen string umwandeln, hat jemand eine Idee wie ich eine
Funktion "PictureToString" realisieren kann ?

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#2

Re: PictureToString ?

  Alt 31. Mär 2006, 20:53
naja wie sollte das endprodukt aussehen?
Nico Müller
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#3

Re: PictureToString ?

  Alt 31. Mär 2006, 20:56
Was meinst du genau, welche Zeichen alle verwendet werden dürfen ?
Alle.

Das Bild möchte ich natürlich durch eine Gegen-Funktion "StringToPicture" wieder bekommen können.

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: PictureToString ?

  Alt 31. Mär 2006, 20:57
Benutze einen StringStream und schreibe das Bild als 'SaveToStream' dort rein. Dann kannst Du mit der Eigenschaft 'DataString' (?) den String auslesen.

Ich hatte das mal angedacht, um plattformübergreifend binäre Daten zu verschicken. Das geht zwar, aber Variants sind besser. Finde ich.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#5

Re: PictureToString ?

  Alt 31. Mär 2006, 21:01
thx, werde ich gleich mal testen
Variant würde eventuell auch gehen, müsste ich mal ausprobieren, wie bekomm ich denn ein Bild am einfachsten in ein Variant ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: PictureToString ?

  Alt 31. Mär 2006, 21:07
Bei Google suchenPictureToString
Thomas
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#7

Re: PictureToString ?

  Alt 31. Mär 2006, 21:10
einfach jedem Pixel kopieren?

Delphi-Quellcode:
function inttohexstr(i:integer):string;
begin
  Eben integerwert in einen hexstring verwandeln, genug Beispiele im Forum
end;

procedure bmptostr;
var
  b:tbitmap;
  s:string;
  x,y:integer;
begin
  ... (bmp erstellen)
  s:=inttohexstr(b.width)+inttohexstr(b.height);
  for x:=1 to b.with do
    for y:=1 to b.height do
    begin
      s:=s+inttohexstr(integer(b.pixels[x,y]));
    end;
end;
Umkehrfunktion kannst du dir ja denken (ichbins.schreibfaul:=true
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

Re: PictureToString ?

  Alt 31. Mär 2006, 22:07
@ichbins
meinst du nicht, daß sowas extrem langsam ist ... die vielen Stringoperationen?

z.B. für pf8bit:
Delphi-Quellcode:
s := inttohex(b.width, 8) + inttohex(b.height, 8);
for y := 0 to b.height - 1 do
  s := s + toHexBE(b.ScanLine[y], b.width);
z.B. für pf24bit:
Delphi-Quellcode:
s := inttohex(b.width, 8) + inttohex(b.height, 8);
for y := 0 to b.height - 1 do
  s := s + toHexBE(b.ScanLine[y], 3 * b.width);
//oder
s := inttohex(b.width, 8) + inttohex(b.height, 8)
  + toHexBE(b.ScanLine[y], 3 * b.width * b.height);

Delphi-Quellcode:
Function toHexBE(Data: Pointer; Size: LongInt): String;
  Const H: Array[0..15] of Char = '0123456789ABCDEF';

  Var i: Integer;
    R: Char;

  Begin
    SetLength(Result, Size * 2);
    R := PChar(Result);
    While Size > 0 do Begin
      R^ := H[PByte(Data)^ shr 4];
      Inc(R);
      R^ := H[PByte(Data)^ and $0F];
      Inc(R);
      Inc(Integer(Data));
      Dec(Size);
    End;
  End;
//i hof ma ich hab's richtig übersetzt °_°
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: PictureToString ?

  Alt 3. Apr 2006, 08:42
Delphi-Quellcode:
Procedure StringToBitmap (Const aValue: String; aBitmap : TBitmap);
Var
  s: TStringStream;

Begin
  s := TStringStream.Create(aValue);
  Try
    aBitmap.LoadFromStream (S);
  Finally
    s.free
  End;
End;

Procedure BitmapToString (aBitmap : TBitmap; Var aString : String);
Var
  S : TStringStream;

Begin
  S := TStringStream.Create;
  Try
    aBitmap.SaveToStream (S);
    aString : =S.DataString;
  Finally
    M.Free;
  End;
End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: PictureToString ?

  Alt 3. Apr 2006, 17:21
Dazu sage ich nur: Wenn das erste Pixel vom Bild schwarz ist, kannst du den schönen string vergessen. zumindest wenn man mit API-funktionen arbeitet und das ganze dann z.B. in ein Memo haben will.

Ich gehe mal davon aus, dass es nur aus buchstaben und zahlen bestehen soll. Ich würde da dann mal auf Bei Google suchenBASE-64 und ähnliches verweisen.

Ansonsten kann man auch einen ByteArray benutzen, anstatt einen string als solchen zu missbrauchen...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:37 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