Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild als "HEX" öffnen / und wieder zurückwandeln (https://www.delphipraxis.net/124800-bild-als-hex-oeffnen-und-wieder-zurueckwandeln.html)

KleinAmann 25. Nov 2008 14:22


Bild als "HEX" öffnen / und wieder zurückwandeln
 
Hallo,

wie der Titel schon sagt will ich z.b ein Jpg-Bild als "text" laden,
diesen will ich dann in Hex anzeigen lassen, dass mach ich mit dieser Funktion :

Delphi-Quellcode:
function BuffToHex(ByteArray: TMyByteArray): string;
var
  i: Integer;
  s: string;
  foo: string;
  HexLength: Integer;
const
  HEXSTR = '0123456789ABCDEF';
begin
  HexLength := Length(HEXPREFIX) + 2 + Length(HEXSUFFIX);
  SetLength(foo, Length(ByteArray) * HexLength);
  for i := 0 to High(ByteArray) do
  begin
    s := HEXPREFIX + HEXSTR[((ByteArray[i] and $F0) shr 4) + 1] +
      HEXSTR[(ByteArray[i] and $0F) + 1] + HEXSUFFIX;
    Move(s[1], foo[i * HexLength + 1], HexLength);
  end;
  Result := foo;
end;
Funktioniert auch wunderbar, nun zu meinem Problem
nach einigen Vorgängen (nicht wichtig)
will ich diese Datei wieder abspeichern,
der Code ist genau gleich, wurde nichts geändert,
wenn ich dies dann als 'beispiel.jpg' abspeichere kann ich das Bild nicht mehr öffnen,
da ich es ja erst wieder die HEX-Werte in "Binary??" umwandeln muss.

Hat jemand eine Idee?

Mfg KleinAmann

shmia 25. Nov 2008 16:20

Re: Bild als "HEX" öffnen / und wieder zurückwande
 
Die Funktion ist "sehr seltsam", denn jedes Byte wird min. um den Faktor 4 aufgeblasen.
Die Konstanten HEXPREFIX und HEXSUFFIX fehlen leider.
Was ich damit sagen will ist: schmeiss deine Funktion in die Mülltonne.

Hier gibt es zwei Funktionen, um Daten in Hex und wieder zurückzuverwandeln:
http://www.delphipraxis.net/internal...ct.php?t=46356

KleinAmann 25. Nov 2008 17:03

Re: Bild als "HEX" öffnen / und wieder zurückwande
 
Hallo,

ich werde es mir heuten Abend anschauen,
erstmals vielen Dank

Edit :

Perfect Danke =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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