Bild aus dem Internet laden

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Bild aus dem Internet laden

BeitragSo, Mai 21, 2006 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Warum kann man mit dieser Methode kein Bild aus dem Internet laden?

Code: [AUSKLAPPEN]
Graphics 640,480,16,2

l$="http://home.arcor.de/platzverschwendung/Schnecke.bmp"

bild = LoadImage(l$)
DrawImage bild,0,0

WaitKey
End
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Hip Teen

BeitragSo, Mai 21, 2006 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil es nicht geht Laughing
Du kannst in BB nur Dateien in den Arbeitsspeicher laden, die lokal auf der Festplatte sind. Konsequenz: Du musst ein Programm schreiben, dass die Dateien erst runterlädt und speichert und dann per LoadImage laden.
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

Goodjee

BeitragSo, Mai 21, 2006 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
also mit readbyte und writebyte
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Willi die Rübe

BeitragSo, Mai 21, 2006 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kanns auch sozusagen "Streamen". Dazu hab ich ne kleine Funktion gefunden:
Code: [AUSKLAPPEN]

Graphics 640,480,32,2
SetBuffer BackBuffer()

Image = LoadImagePerUrl("http://home.arcor.de/platzverschwendung/Schnecke.bmp")

DrawImage Image,0,0
Flip
WaitKey
EndGraphics
End

Function LoadImagePerUrl(Url$)

Local bfType%
Local bfSize%
Local bfReserved%
Local bfOffBits%

Local biSize%
Local biWidth%
Local biHeight%
Local biPlanes%
Local biBitCount%
Local biCompression%
Local biSizeImage%
Local biXPelsPerMeter%
Local biYPelsPerMeter%
Local biClrUsed%
Local biClrImportant%

Local biMaskRed%
Local biMaskGreen%
Local biMaskBlue%

Local biDown%

Local ClrTable%[256]


Local host$, host_tmp

 host$=right(Url$,len(Url$)-7)           
 host_tmp=instr(host$,"/")-1     
 host$=left(host$,host_tmp)             

Local stream=opentcpstream(host$,80)

WriteLine stream, "GET "+url$
WriteLine stream, "Host: "+host$
WriteLine stream, ""


bfType%          = ReadShort(stream)
bfSize%          = ReadInt(stream)
bfReserved%      = ReadInt(stream)
bfOffBits%       = ReadInt(stream)
;-----------------------
If bfType% <> 19778 Then RuntimeError("Error: File ist not a valid Windows Bitmap(.bmp)")

biSize%          = ReadInt(stream)
biWidth%         = ReadInt(stream)
biHeight%        = ReadInt(stream)
biPlanes%        = ReadShort(stream)
biBitCount%      = ReadShort(stream)
biCompression%   = ReadInt(stream)
biSizeImage%     = ReadInt(stream)
biXPelsPerMeter% = ReadInt(stream)
biYPelsPerMeter% = ReadInt(stream)
biClrUsed%       = ReadInt(stream)
biClrImportant%  = ReadInt(stream)

If biHeight%>0 Then biDown%=0
If biHeight%<0 Then biDown%=1

If biCompression%=3 Then
 biMaskBlue%     = ReadInt(stream)
 biMaskGreen%    = ReadInt(stream)
 biMaskBlue%     = ReadInt(stream)
EndIf

If biClrUsed%=0 Then
 If biBitCount%=1 Or biBitCount%=4 Or biBitCount%=8 Then
   For tmp=0 To 2^biBitCount%
     ClrTable[tmp] = ReadInt(stream)
   Next   
 EndIf
EndIf

Local img=CreateImage( biWidth%,biHeight% )
SetBuffer ImageBuffer(img)



If biCompression%=0 Then
 If biBitCount% = 24 Then
  If biDown% = 0 Then
   For tmp2=biHeight% To 0 Step -1
    For tmp=0 To biWidth%
     blue=ReadByte(stream)
     green=ReadByte(stream)
     red=Readbyte(stream)
     LockBuffer ImageBuffer(img)
      rgb=Alpha%*$1000000 + red*$10000 + green*$100 + blue
      WritePixelFast tmp,tmp2,rgb
     UnlockBuffer ImageBuffer(img)
    Next
   Next
  ElseIf biDown%=1 Then
   For tmp2=0 To biHeight%
    For tmp=0 To biWidth%
     blue=ReadByte(stream)
     green=ReadByte(stream)
     red=Readbyte(stream)
      LockBuffer ImageBuffer(img)
      rgb=Alpha%*$1000000 + red*$10000 + green*$100 + blue
      WritePixelFast tmp,tmp2,rgb
      UnlockBuffer ImageBuffer(img)   
    Next
   Next
  EndIf
 EndIf 
EndIf


SetBuffer BackBuffer()
CloseTCPStream stream
Return img

End Function

Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage

Kabelbinder

Sieger des WM-Contest 2006

BeitragDi, Mai 23, 2006 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Danke für alle Antworten.

@<Willi die Rübe>: Cool, das schau ich mir mal näher an. HTTP wollte ich schon immer mal machen. Very Happy
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group