Einzelnen Beitrag anzeigen

bugsysiegel

Registriert seit: 6. Dez 2009
3 Beiträge
 
#1

JPEG Error 53/54 bei Delphi 2009

  Alt 30. Dez 2009, 21:43
Hallo liebe Leut,
Heute kein Problem, sondern eine Erklärung eines möglichen Fehlers.

Ich habe eine funktionierende Anwendung die Bilder über das Internet lädt mit Delphi 2009 neu compiliert und bekam nun bei jedem Bild das ich so versuchte anzuzeigen einen "Jpeg Error 53" oder manchmal auch 54. Die Bilder waren dann auch mit Irfanview nicht anzuzeigen.

Beim stöbern im Netz bemerkte ich das es ähnliche Fehler gibt wenn Leute auf Datenbanken zugreifen und ich denke die Fehlerursache ist die gleiche wie bei mir:

Ich habe mit der Indy Komponente TidHttp gearbeitet die einen String zurückliefert und dann das JPEG als Rohdatei gespeichert:

Delphi-Quellcode:
        Res:=Http.Get(url);
        AssignFile(Datei,Dir+Dateiname);
        Rewrite(Datei,1);
        BlockWrite(Datei,Res[1],Length(Res));
        CloseFile(Datei);
Das klappt nun wegen den Unicodesrings nicht mehr. Also umkopieren in ein Array:
Delphi-Quellcode:
var buffer : array [1..1000000] of byte;

procedure Copyinbuffer;

var
    i : integer;

begin
  for i:= 1 to length(res) do
    buffer[i]:=ord(res[i]);
end;

...
        Res:=Http.Get(url);
        Copyinbuffer
        AssignFile(Datei,Dir+Dateiname);
        Rewrite(Datei,1);
        BlockWrite(Datei,buffer,Length(Res));
        CloseFile(Datei);
Ich vermute wenn jemand anders diesen JPEG Error 53 bekommt und z.B. das Bild in einer Datenbank gespeichert ist, dass es die gleiche Fehlerursache ist: Das JPEG wird als String aus der Datenbank geliefert und der wird automatisch zu Unicode umgewandelt.

Vielleicht erspart das dem einen oder anderen eine Fehlersuche....

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat