Blob Fehlermeldung bei dem Bsp aus dem Englischen Forum

Anfängerfragen zum Programmieren mit PureBasic.
AddMe
Beiträge: 46
Registriert: 04.05.2009 23:24

Blob Fehlermeldung bei dem Bsp aus dem Englischen Forum

Beitrag von AddMe »

Hallo Zusammen,

ich hatte versucht das Beispiel aus dem Englischen Forum zu verwenden.

http://www.purebasic.fr/english/viewtop ... &start=105

Das Bsp. funktioniert so wie es ist, jedoch wenn ich z. B. ein jpg Bild nehme, speichert er es in eine SQlite DB aber beim extract blob gibt es folgende Fehlermeldung:

Code: Alles auswählen

EnableExplicit

;XIncludeFile "SQLite3.pbi"

Define Mem, File, Size, hDB, lStatement

hDB = OpenDatabase(#PB_Any, "c:\logo.db", "", "")
If hDB = #False
  Debug "Can't open database"
  End
EndIf

lStatement = SQLitePrepare(hDB, "Select fldBlob From tblBlob")

If lStatement
  SQLiteStep(lStatement)
  Size = SQLiteColumnByte(lStatement, 0)
  Mem = SQLiteColumnBlob(lStatement, 0)
  If Mem
;     File = CreateFile(#PB_Any, "logo.bmp")
;     If File
;       WriteData(File, Mem, Size)
;       CloseFile(File)
;     EndIf
    CatchImage(0, Mem)
    OpenWindow(0, #PB_Ignore, #PB_Ignore, ImageWidth(0), ImageHeight(0), "blob - example")    <== FEHLERMELDUNG
    ImageGadget(0, 0, 0, ImageWidth(0), ImageHeight(0), ImageID(0))
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
  SQLiteFinalize(lStatement)
EndIf
CloseDatabase(hDB) 
Die Fehlermeldung lautet: The specified #Image ist not initialized

Wäre toll, wenn mir jemand erklären könnte, was ich da falsch mache, oder was ich machen muss, damit es geht.

Wie geschrieben, ich habe nur das Beispiel so genommen wie es ist und nur anstatt eines bmp Bildes ein jpg Bild genommen.

Schon mal vielen Dank für die Hilfe.

Gruß
Michael
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

UseJPEGImageDecoder() dürfte aushelfen.
AddMe
Beiträge: 46
Registriert: 04.05.2009 23:24

Beitrag von AddMe »

Hallo X360 Andy,
X360 Andy hat geschrieben:UseJPEGImageDecoder() dürfte aushelfen.
oh super vielen Dank für Deine Hilfe. Es funktioniert. :D
Da wäre ich nun nie drauf gekommen. :cry:

Nochmals vielen Dank.

Gruß
Michael
Little John

Beitrag von Little John »

AddMe hat geschrieben:Da wäre ich nun nie drauf gekommen. :cry:
Um besser zu verstehen was ein kopierter Code eigentlich macht, lohnt es sich wirklich in der Hilfe nachzulesen, wie unbekannte Befehle funktionieren. Du wirst dadurch viel mehr und viel schneller lernen, als wenn Du diesen Teil überspringst -- auch wenn es am Anfang evtl. lästig erscheinen mag.

In diesem Fall, wenn man den Cursor auf CatchImage() setzt und dann [F1] drückt, liest man u.a.
Die folgenden Befehle können zum Aktivieren weiterer Bildformate benutzt werden:
UseJPEGImageDecoder()
UseJPEG2000ImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
UseTGAImageDecoder()
Diese Anmerkung ist nicht böse gemeint, sondern als Tipp gedacht der helfen soll, sich fundiertes Wissen über PureBasic anzueignen.

Gruß, Little John
AddMe
Beiträge: 46
Registriert: 04.05.2009 23:24

Beitrag von AddMe »

Hallo LittleJohn,

Vielen Dank für Deine Antwort.
Little John hat geschrieben:Diese Anmerkung ist nicht böse gemeint, sondern als Tipp gedacht der helfen soll, sich fundiertes Wissen über PureBasic anzueignen.
Gruß, Little John
Ich finde es super, dass du mir diesen Hinweis gibst.
Ich habe danach gesucht, warum etwas nicht initialized sein könnte.
Tja, als Anfänger sucht man wohl immer oder oft an der falschen Stelle.

Nächstes mal werde ich es, dank deiner Hilfe, hoffentlich finden.

Gruß
Michael
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

F1 ist eben dein Bester Freund :wink:
Win11 x64 | PB 6.20
Antworten