Aktuelle Zeit: 14.11.2019 08:19

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: CatchImage Problem (crash)
BeitragVerfasst: 12.09.2011 00:26 
Offline
Benutzeravatar

Registriert: 16.02.2005 15:15
Hallo,

ich hab ein Problem mit CatchImage().

Mein Programm holt Bilder aus unserer Fotoclub Datenbank mit GetDatabaseBlob() und dann wird das Bild mit CatchImage() geladen, verkleinert und vorerst als thumb angezeigt.
Wir haben jpg und tiff und png Bilder in der DB.

Geht alles solange das image in der DB ok ist. Jetzt ists aber passiert, dass wer kaputte Bilder von einer billigen Speicherkarte in die DB geladen hat. Sollte beim runterladen eigentlich nix machen, weil wenn Catchimage() ein kaputtes Bild bekommt, dann gibts ja #false als return.

Das geht aber nicht immer!!

ok ist es nur bei UseJPGImageDecoder() ODER nur UseTIFFImageDecoder()

aber wenn man beide verwendet, dann crasht das CatchImage().
Witzig ist auch, dass UseTIFFImageDecoder() vor UseJPEGImageDecoder() stehen muss, damit es crasht. Umgekehrt gehts.
Alle anderen Decoder sind egal, wo sie stehen.

Irgendwas ist da faul oder mach ich was falsch, es sollte doch egal sein, welcher Decoder an erster Stelle im Programmcode steht?
Wär super wenn jemand das Codeschnippsel ausprobieren könnte :)

Code:
; Tested with PB4.51, 4.6Beta, WinXP-SP3, Win7 32 Bit
;-----------------------------------------------------------------
; not ok
UseTIFFImageDecoder()
UseJPEGImageDecoder()

;-----------------------------------------------------------------
;; ok
;UseJPEGImageDecoder()   
;UseTIFFImageDecoder()

;-----------------------------------------------------------------
;; ok
;UseTIFFImageDecoder()

;-----------------------------------------------------------------
;; ok
;UseTIFFImageDecoder()
;UseJPEG2000ImageDecoder()


len = 1000000
*buffer = AllocateMemory(len)

If *buffer
  ; an dieser Stelle wird *buffer mit GetDatabaseBlob() gefüllt.
  ; wir simulieren einen fehlerhaften Eintrag
  PokeS(*buffer, "badpicture", 10)

  If CatchImage(1, *buffer, len)
     FreeImage(1)
  Else 
     Debug "load error"
  EndIf   

  FreeMemory(*buffer) 

EndIf
End



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CatchImage Problem (crash)
BeitragVerfasst: 12.09.2011 00:44 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Den Absturz kann ich bestätigen.

Ist echt komisch, dass es von der Reihenfolge von UseImageDecoder() abhängt.
Das bedeutet, PB nimmt sich anscheint die Quelle und geht dann wie in einer Liste die Decoder durch, welcher passt.

Fragt sich jetzt nur, warum er genau bei dieser Reihenfolge abstürzt.
An einem Fehlerhaften Decoder liegt anscheind nicht, da ja beide einzeln funktionieren.

Meine Vermutung ist, dass beim durchgehen der Decoder, vergessen wird die max-Length weiterzugeben.

Trotzdem sehr seltsam.

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CatchImage Problem (crash)
BeitragVerfasst: 12.09.2011 10:27 
Offline

Registriert: 19.09.2007 22:18
Kann ich ebenfalls bestätigen. Ich erinnere mich ein ähnliches Problem vor Jahren(?) gehabt zu haben, bei dem die Reihenfolge der Decoder scheinbar ebenfalls ausschlaggebend war. Vielleicht waren es sogar die Audio-Decoder... ich weiß es nicht mehr.

Wie dem auch sei. Ich habe es mal im englischen Bugforum gepostet: http://www.purebasic.fr/english/viewtop ... =4&t=47527

_________________
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CatchImage Problem (crash)
BeitragVerfasst: 18.10.2011 10:48 
Offline

Registriert: 19.09.2007 22:18
Habe es gerade getestet: Mit PureBasic 4.60 RC 2 wurde der Fehler behoben.

(Also: immer Fehlermeldungen machen, sonst wäre das eventuell untergegangen! ;) )

_________________
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 5 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye