warum wurd das bild nicht gefunden?
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: warum wurd das bild nicht gefunden? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Unhandled Exception:Attempt to access field or method of Null object
mein code: Code: [AUSKLAPPEN] Graphics 1024, 768
Global LoginScreen:TImage = LoadImage("HTTP::darkwars.da.funpic.de/Universe.jpg") Repeat Cls DrawImage LoginScreen, 0, 0 Flip Until KeyDown(KEY_ESCAPE) End das bild gibt es zu 100%^^ http://darkwars.da.funpic.de/Universe.jpg kann mir grad nicht wirklich helfen ^^ |
||
Lion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich bezweifel ganz stark, dass du das Bild einfach so laden kannst.
Du musst ja erstmal das Bild überhaupt anfragen, mit einem normalen Stream. Einfach so aus dem Internet ziehen geht wohl eher nicht, wie du ja selbst bemerkst. |
||
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
doch kla geht das...
so habe ich auch schon oft bilder aus dem netz geladen... aber vll könnte es an funpic liegen. aber das tut es nicht wirklich, schau mal hier. es ging mal / https://www.blitzforum.de/foru...highlight= |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schreib doch mal das http klein, damit auch mit dem vergleich im StreamHandler übereinstimmt. | ||
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
das geht leider genausowenig
und an funpic liegt es nicht Code: [AUSKLAPPEN] Global LoginScreen:TImage = LoadImage("http::www.new-dream.de/image/wallpaper/3d/3d-weltall/3d-weltall_52.jpg")
oder so: Code: [AUSKLAPPEN] Global LoginScreen:TImage = LoadImage("http::new-dream.de/image/wallpaper/3d/3d-weltall/3d-weltall_52.jpg")
|
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr, sehr seltsamer Bug, immerhin funktioniert dies tadellos:
BlitzMax: [AUSKLAPPEN] http:THTTPStreamFactory = New THTTPStreamFactory Viel Spass beim Debuggen von Siblys Code. :/ |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
da muss ich dich entteuschen, auch das geht leider nicht, und falls die frage kommt... blitzmax ist aktuell. und ja auch bezahlt ^^ xD | ||
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem kann daran liegen, dass brl.httpstream den Stream zurückgibt, bevor alle Daten da sind. Wohlmöglich erscheint es dem JPEG-Loader so, dass das Bild nicht vollständig ist, obwohl er nur warten müsste.
Am einfachsten finde ich den Umweg über Banks: BlitzMax: [AUSKLAPPEN] LoadImage(CreateBankStream(LoadBank("HTTP::darkwars.da.funpic.de/Universe.jpg"))) ZEVS |
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ZEVS: Glaube ich eher nicht. Übergebe ich den Stream an LoadPixmap (welches jeden Loader ausprobiert, und der Erste, der nicht eine Exception kotzt, hat gewonnen) erst nach einem Delay von 1000 Millisekunden übergebe, will er das ganze trotzdem nicht laden. Beachtenswert ist, dass LoadPixmapJPeg(stream) funktioniert, aber LoadPixmap(stream) nicht. Hui.
EDIT: Und ja, man kann Streams an LoadPixmap übergeben. ReadStream( stream ) liefert einen gültigen Stream mit gültigen Daten zurück. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
kann es sein das bmax (neuste version) einige bugs hingegen den alten hat? | ||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das einzige, was ich mir denken kann, ist, dass der Fehler irgendwo in pixmap.bmx liegt, genauer im Auswählen der Loader. LoadPixmapJPeg kommt mit dem ganzen klar, LoadPixmap aber nicht. Und alles was LoadPixmap macht ist den Loader auswählen.
Seltsam, seltsam. Muss ganz sicher ein BRL-Bug sein, nicht deine Schuld. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
na hoffe das dann da bald malnen update kommt womit des wieder gehen wird^^ | ||
![]() |
SamFisher |
![]() Antworten mit Zitat ![]() |
---|---|---|
So funktioniert es. Graphics musste noch ausgeführt werden ![]() BlitzMax: [AUSKLAPPEN]
|
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klar funktioniert es so. Sagte ich ja auch. Aber im Prinzip muss LoadImage auch stream als Argument akzeptieren. Deshalb funktioniert LoadImage(diehttpurl) nicht. Graphics hat bei meinem Rumgeteste nie gefehlt, es ist effektiv ein Bug in LoadPixmap.
Der Grund wieso Graphics im oberen Code fehlte, war, dass ich anderes Zeugs darüber auskommentierte, und schlichtwegs Graphics nicht mit in den Post kopiert habe. Da ich ja aber schrieb, dass es folglich funktioniere, ist dies sowieso irrelephant. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gibt einen einfachen Grund für das Verhalten:
BlitzMax probiert jeden Pixmap-Loader aus und muss daher immer wieder mit der Leseposition zurückspringen. Bei Socket-Streams gibt es diese Möglichkeit nicht. (Die HTTPStreamFactory ist dafür nur ein Comfort-Wrapper, der auf den "http::"-Vorsatz reagiert.) Das ist der schuldige Code: BlitzMax: [AUSKLAPPEN] Local pos=stream.Pos() Die Pixmap-Erstellung wird einfach abgebrochen. Man könnte den Code so modifizieren, dass er stattdessen einen gepufferten Streamwrapper nutzt, sodass die gelesenen Werte zwischengespeichert werden. MfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tatsächlich. Der einfachste Workaround wäre wohl die Methode von ZEVS.
Ein möglicher Fix wäre es, den HTTP Stream als normalen gepufferten Stream anzusehen. Man könnte durch das content-length HTTP-header Feld einfach herausfinden, wie gross der Stream sein muss. Ich werde mal ein bisschen damit rumprobieren. EDIT: Fixed! Anstatt BRL.HTTPStream zu Importieren einfach meinen Workaround ins Framework reinnehmen. BlitzMax: [AUSKLAPPEN]
(Ich weiss nicht ob dies der beste Weg ist, es zu tun...) Installation: Diese Datei in den Ordner BlitzMax/mod/elephant.mod/httpstream.mod/ speichern, und in der IDE CTRL+D ausführen, um das Modul zu kompilieren. Viel Spass! EDIT2: Framework ist nicht zwingend von nöten, einfaches Import Elephant.HTTPStream reicht schon aus. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß, das Thema ist nicht mehr das neuste, aber ich bin gerade auf etwas gestoßen.
OpenFile-Doku hat Folgendes geschrieben: This command is similar to the OpenStream command but will attempt to cache the contents of the file to ensure serial streams such as http: based url's are seekable. Use the CloseStream command when finished reading and or writing to a Stream returned by OpenFile.
Da ReadFile darauf zurückgreift, funktioniert BlitzMax: [AUSKLAPPEN] LoadImage(ReadFile("http::darkwars.da.funpic.de/Universe.jpg")) Scheint mir das kürzeste ![]() ZEVS |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group