AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi JPEG Error 53/54 bei Delphi 2009
Thema durchsuchen
Ansicht
Themen-Optionen

JPEG Error 53/54 bei Delphi 2009

Ein Thema von bugsysiegel · begonnen am 30. Dez 2009 · letzter Beitrag vom 1. Jan 2010
Antwort Antwort
bugsysiegel

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

JPEG Error 53/54 bei Delphi 2009

  Alt 30. Dez 2009, 22: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
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: JPEG Error 53/54 bei Delphi 2009

  Alt 1. Jan 2010, 17:38
Hi!

also "Length(Res)" wird so nicht funktionieren, da du mit Unicode arbeitest und das einzelne Zeichen 2 byte groß ist.

Somit muss du das so machen:
Delphi-Quellcode:
procedure Write;
var
  strLength : integer;
begin

Res:=Http.Get(url);
Copyinbuffer
AssignFile(Datei,Dir+Dateiname);
Rewrite(Datei,1);
strlength := length(res);
BlockWrite(Datei,buffer,SizeOf(res[1])*strLength);
CloseFile(Datei);
end;
Gruß!
Lars
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:01 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