xbpBitmap hängt bei loadfile

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Bitmusterschuster
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 42
Registriert: Do, 12. Feb 2009 11:30
Danksagung erhalten: 2 Mal

xbpBitmap hängt bei loadfile

Beitrag von Bitmusterschuster »

Hallo Zusammen,

ich habe ein Problem beim Laden bestimmter JPG-Dateien mit der LoadFile-Methode eines xbpBitmap Objektes.

Mein Code sieht etwa so aus:

function LoadJpgDatei(cFilename)
local oPS := oCrtCover:PresSpace()
local oImage := XbpBitmap():new():create(oPs)

oImage:LoadFile(cFileName)
.....

Bei 99% der JPG-Dateien klappt der Code wunderbar, die Datei wird korrekt angezeigt.
Bei einigen JPG-Dateien hängt sich das Xbase++ Programm jedoch auf. (nach dem LoadFile())

Die Dateien können im Windows-Explorer aber problemlos angezeigt werden.
Die Dateigröße einer Musterdatei lag bei 1.2 MByte. Andere Dateien, die viel größer sind werden jedoch problemlos angezeigt, so dass es nicht an der Dateigröße liegen kann.

Wie kann ich diesen Mist abfangen. Ich muss irgendwie vor dem LoadFile() feststellen können, ob ich die Datei geladen bekomme.

Vielleicht hat ja einer eine Idee.
Vielen Dank für Eure Hilfe.

Bitmusterschuster
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: xbpBitmap hängt bei loadfile

Beitrag von Tom »

Herzlich,
Tom
DelUser01

Re: xbpBitmap hängt bei loadfile

Beitrag von DelUser01 »

Hallo

lade doch so ein problematisches JPG hoch, dann könnte ich es mit meinem Xbase-Viewer versuchen ob es da auch hängen bleibt.
(Vorausgesetzt es ist kein geheimes oder gar anstößiges Bild)
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: xbpBitmap hängt bei loadfile

Beitrag von AUGE_OHR »

Bitmusterschuster hat geschrieben:oImage:LoadFile(cFileName)
.....
Bei 99% der JPG-Dateien klappt der Code wunderbar, die Datei wird korrekt angezeigt.
Bei einigen JPG-Dateien hängt sich das Xbase++ Programm jedoch auf. (nach dem LoadFile())
leider ist JPG nicht == JPG ... Die Hersteller "missbrauchen" gerne den (Exif) Header
Bitmusterschuster hat geschrieben:Wie kann ich diesen Mist abfangen. Ich muss irgendwie vor dem LoadFile() feststellen können, ob ich die Datei geladen bekomme.
versuche es mit einem BEGIN SEQUENCE / RECOVER / END

Code: Alles auswählen

   bSaveError := ErrorBlock()

   ErrorBlock( {|e| Break(e)} )
   BEGIN SEQUENCE 
      oImage:LoadFile(cFileName)
   RECOVER
      ErrorBlock( bSaveError )
      // was tun wenn Error
      RETURN .F.
   END 
   ErrorBlock( bSaveError )
um einen Fehler abzufangen.
alternative kann du die CLASS TIPicture von Pablo mit ot4xb (http://www.xbwin.Com) versuchen.
gruss by OHR
Jimmy
DelUser01

Re: xbpBitmap hängt bei loadfile

Beitrag von DelUser01 »

Hallo Jimmy

das mit dem Error-Abfangen wäre ja die einfachste Übung. Er schreibt ja das sich das Programm "aufhängt"´. Da hätte ich jetzt eher vermutet dass eben kein Fehler kommt sondern das Programm nicht mehr reagiert. Mal sehen wie die Antwort aussieht.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: xbpBitmap hängt bei loadfile

Beitrag von Tom »

Wahrscheinlich würde die Einbettung in eine Sequenz dafür sorgen, dass die Anwendung nicht mehr abschmiert, wenn sie das denn überhaupt tut (Bitmusterschuster sprach ja von "Aufhängen", also einem Freeze), dann aber nicht mehr das leisten, was der Anwender erwartet, nämlich ein Bild anzeigen. Man müsste das also mindestens um irgendeine Information ergänzen oder ein Platzhalter-Bildchen anzeigen, auf dem beispielsweise "Das Bild kann leider nicht angezeigt werden" stehen könnte. Aber auch das wäre letztlich nicht sehr befriedigend.

Ich gehe allerdings davon aus, dass es sich um eines der in den verlinkten PDRs beschriebenen Probleme handelt, also ein Fix oder Workaround existiert, den man einfach einbinden kann.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: xbpBitmap hängt bei loadfile

Beitrag von AUGE_OHR »

Tom hat geschrieben:... verlinkten PDRs beschriebenen Probleme handelt, also ein Fix oder Workaround existiert, den man einfach einbinden kann.
hm ... bei den PDRs steht :
A work-around for this problem is available upon request.
also sind das keine Hotfixe ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: xbpBitmap hängt bei loadfile

Beitrag von AUGE_OHR »

hi,

ich habe ein ähnliches Problem im WMP wo sich ein Video nicht laden lässt so gelöst

Code: Alles auswählen

      oStart := Thread() :new()
      oStart:setStartTime( SECONDS() + 3 )
      oStart:start( { || Machwas() } )
//
// hier Versuch das Video zu laden
//

// wenn es gelingt
      oStart:setInterval( NIL )
ich starte also vorher einen Thread und lasse ihm 3 Sekunden zum laden.
wenn innerhalb der Zeit das Video geladen werden kann wird der Thread storniert, sonst wird er ausgeführt was in diesem Fall ein re-start der Applikation wäre.
gruss by OHR
Jimmy
Antworten