The specified #Image is not initialized.

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

The specified #Image is not initialized.

Beitrag von NicTheQuick »

Code: Alles auswählen

Img_Output = CreateImage(#PB_Any, Width, Height)

If Img_Output = 0 : End : EndIf

Gad_Output = ImageGadget(#PB_Any, 0, 0, Width, Height, ImageID(Img_Output))
Wie kann der oben genannte Fehler hier in der dritten Zeile auftreten? Müsste vorher nicht
schon das If den Fehler abfangen?

Komischerweise funktioniert es manchmal und manchmal wiederum nicht.

Ich arbeite mit PB4.40 Beta 2 unter Ubuntu 9.04 x64.
iostream
Beiträge: 109
Registriert: 15.06.2008 12:59

Beitrag von iostream »

Habe das auch schon manchmal auf Linux gehabt.
Probier mal IsImage(#Image).
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Danke, das scheint sogar bisher zu klappen.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Alternativ kannste auch Peeki nehmen. Da das Handle immer auf den ersten 4/8 bytes liegt.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Das kann doch aber nicht normal sein, oder?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

HeX0R hat geschrieben:Das kann doch aber nicht normal sein, oder?
Nein, glaub ich auch nicht. Das mit dem PeekI ist nicht empfehlenswert, zumindest nicht wenn man es später nicht eventuell wieder ersetzen will. Auch IsImage ist eher nicht dafür gedacht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Wozu sollte 'IsImage()' sonst gedacht sein als zum Überprüfen der Existenz eines Images.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

NicTheQuick hat geschrieben:Wozu sollte 'IsImage()' sonst gedacht sein als zum Überprüfen der Existenz eines Images.
Na dazu schon, aber du hast ja ImageID mit IsImage ersetzt oder nicht? Das würde ja eben den eigentlichen Zweck verfehlen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Achso, nein.

Ich hab es so gemacht:

Code: Alles auswählen

Img_Output = CreateImage(#PB_Any, Width, Height)

If IsImage(Img_Output) = #False : End : EndIf

Gad_Output = ImageGadget(#PB_Any, 0, 0, Width, Height, ImageID(Img_Output))
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Oha, dann ist daran aber schon weniger faul. :wink: Denn es wird ja nicht spezifiziert was CreateImage zurückgibt, wenns fehlschlägt. Obwohl ich mir vorstellen kann, dass einfach das was im EAX drinsteht zurückgegeben wird.
Zuletzt geändert von DarkDragon am 31.08.2009 17:04, insgesamt 1-mal geändert.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten