Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Fotos load from file (https://www.delphipraxis.net/146928-fotos-load-file.html)

khh 29. Jan 2010 14:39


Fotos load from file
 
hallo zusammen,

ichhab mich jetzt dazu entschieden die Fotos extern zu speichern.
siehe fotos speichern

beim Einlesen per:
image1.picture.LoadFromFile(datei)

bekomme ich ab und zu einen jpeg-error, den ich auf die Schnelle nicht nachvollziehen kann.
Gibt es irgendwelche Beschränkungen hinsichtlich des Dateinamens?


Danke Gruss KH

fkerber 29. Jan 2010 14:40

Re: Fotos load from file
 
Hi!

Ist es immer bei dem selben Bild?
Hast du mal versucht, es umzubenennen?


Grüße, Frederic

mkinzler 29. Jan 2010 14:46

Re: Fotos load from file
 
JPeg-Error hört sich aber eher nicht nach einem falschen Dateinamen, sondern eher nach einem nicht unterstützten Format an

khh 29. Jan 2010 14:46

Re: Fotos load from file
 
Zitat:

Zitat von fkerber
Hi!

Ist es immer bei dem selben Bild?
Hast du mal versucht, es umzubenennen?


Grüße, Frederic

es sind verschiedene Bilder.
Ich hab den Eindruck, wenn der Dateiname länger als 8 Zeichen ist schmiert er ab.
Wenn ich unter Windows das File umbenenne schmiert er auch ab.:-(
Speichere ich das gleiche Foto mit der Bildbearbeitung unter einem anderen namen dann gehts.

Gruss KH

EDIT:
Die Länge des Dateinamens kannst nicht sein.

Wenn ich das Bild mit gimp als jpg speichere gehts auch mit langen dateinamen.

kann es sein dass der Dateitype trotz jpg endung nicht stimmt ?

Fussel9 29. Jan 2010 14:48

Re: Fotos load from file
 
Wenn ich mal fragen darf... wie heißt denn das jpg?

khh 29. Jan 2010 14:50

Re: Fotos load from file
 
Zitat:

Zitat von Fussel9
Wenn ich mal fragen darf... wie heißt denn das jpg?

Siehe mein edit im ersten Post.
Der Name an sich ist irrelevant.
der kann sein : meinerstesbild.jpg oder auch sonstwas.jpg

khh 29. Jan 2010 14:52

Re: Fotos load from file
 
Zitat:

Zitat von mkinzler
JPeg-Error hört sich aber eher nicht nach einem falschen Dateinamen, sondern eher nach einem nicht unterstützten Format an

eben, deshalb meine Vermutung dass die Endung nicht mit dem Format übereinstimmt.

in diesem Fall stellt sich die Frage, ob ich das Dateiformat irgendwie auf Richtigkeit prüfen kann.

Oder einfach nur den Fehler abfangen und eine globale Meldung bringen?

Fussel9 29. Jan 2010 15:22

Re: Fotos load from file
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
procedure TFMain.Label1Click(Sender: TObject);
begin
//ShowMessage(ExtractFilePath(ParamStr(0)));
PB.StepBy(10);
while PB.Position < 100 do
  begin
    PB.StepBy(10);
  end;
//IShow.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'lemontree.jpg');
IShow.Picture.LoadFromFile(Pfad+Liste.gibElement.GibBild);
MOutline.Clear;
MOutline.Lines.add(Liste.gibElement.GibName);
Liste.zumnaechsten;
TProgress.Enabled:=True;
das ist aus nem programm das ich mal geschrieben habe

habs ausprobiert und da hab ich das problem nicht

€D$T:
habs dir mal als zip angehäng ;)

fkerber 29. Jan 2010 15:27

Re: Fotos load from file
 
Hi!

Welcher JPG-Error kommt denn?


Grüße, Frederic

khh 29. Jan 2010 15:37

Re: Fotos load from file
 
Zitat:

Zitat von fkerber
Hi!

Welcher JPG-Error kommt denn?


Grüße, Frederic

der Fehler lautet lapidar
excepion class exception with message jpeg-error

Fussel9 29. Jan 2010 15:37

Re: Fotos load from file
 
Du kannst dir in dem Programm auch deine Bilder anzeigen lassen nimm einfach die dat.txt und setz an der gegebenen Stelle statt Testbild2.jpg oder den anderen Testbildern mal den dateinamen deiner datei ein... die datei muss dazu nur im selben verzeichniss liegen

khh 29. Jan 2010 15:38

Re: Fotos load from file
 
Zitat:

Zitat von Fussel9
Delphi-Quellcode:
procedure TFMain.Label1Click(Sender: TObject);
begin
//ShowMessage(ExtractFilePath(ParamStr(0)));
PB.StepBy(10);
while PB.Position < 100 do
  begin
    PB.StepBy(10);
  end;
//IShow.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'lemontree.jpg');
IShow.Picture.LoadFromFile(Pfad+Liste.gibElement.GibBild);
MOutline.Clear;
MOutline.Lines.add(Liste.gibElement.GibName);
Liste.zumnaechsten;
TProgress.Enabled:=True;
das ist aus nem programm das ich mal geschrieben habe

habs ausprobiert und da hab ich das problem nicht

€D$T:
habs dir mal als zip angehäng ;)

danke dir, werd ich mir anschauen

jus 29. Jan 2010 16:04

Re: Fotos load from file
 
Hallo khh,

wenn das Programm unter Windows laufen soll, dann könntest du unter Umständen probieren, das Bild über GDI+ reinzuladen. Es sein kann, dass die Jpeg Komponente nicht mit allen Jpg Dateien zurecht kommt. Schaue dir die den folgenden Beitrag an:

Error beim Laden von JPG-Dateien

:)

Lg,
jus

nahpets 29. Jan 2010 16:06

Re: Fotos load from file
 
Hallo,

meines wissens sind die ersten 10 Byte eines JPegs immer
Code:
FF D8 FF E0 00 10 4A 46 49 46
oder wenn Du es als Text prüfen willst:

Die Bytes 6 bis 9 sind die Zeichenfolge JFIF (Zählung bei 0 beginnend)

khh 29. Jan 2010 16:22

Re: Fotos load from file
 
ich danke euch


gruss KH

khh 29. Jan 2010 16:25

Re: Fotos load from file
 
Zitat:

Zitat von nahpets
Hallo,

meines wissens sind die ersten 10 Byte eines JPegs immer
Code:
FF D8 FF E0 00 10 4A 46 49 46
oder wenn Du es als Text prüfen willst:

Die Bytes 6 bis 9 sind die Zeichenfolge JFIF (Zählung bei 0 beginnend)

hab grad mal mit nem Hex-editor in ein file reingeschaut.

die Bytes 6-9 zu prüfen sollte dann eigentlich reichen, oder?
ich danke dir

Gruss KH

jus 30. Jan 2010 18:19

Re: Fotos load from file
 
Zitat:

Zitat von khh
Zitat:

Zitat von mkinzler
JPeg-Error hört sich aber eher nicht nach einem falschen Dateinamen, sondern eher nach einem nicht unterstützten Format an

eben, deshalb meine Vermutung dass die Endung nicht mit dem Format übereinstimmt.

in diesem Fall stellt sich die Frage, ob ich das Dateiformat irgendwie auf Richtigkeit prüfen kann.

Oder einfach nur den Fehler abfangen und eine globale Meldung bringen?

Wenn es darum geht eine Datei auf ein Format zu überprüfen, so könntest du z.B. die Vampyre Imaging Lib verwenden. Mit dieser Lib ist die Formaterkennung ein Einzeiler:

Delphi-Quellcode:
var
  FileStream:TFileStream;
  Ext: String;
  ...
begin
...

FileStream := TFileStream.Create('C:\test.jpg', fmOpenRead);
Ext:=DetermineStreamFormat(FileStream);
FileStream.Free;
...
in der String Variable Ext liefert z.B. "jpg" zurück.

Die Frage ist nur, ob du dich mit der Vampyre beschäftigen willst. 8-)

Lg,
jus

khh 30. Jan 2010 18:54

Re: Fotos load from file
 
danke dir,
einen Blick da rein ist es sicher auf jeden Fall wert.

Gruss KH


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