Bild aus dem Internet laden

Anfängerfragen zum Programmieren mit PureBasic.
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Bild aus dem Internet laden

Beitrag von Dare Devil »

Hab in der Suche leider nix brauchbares gefunden, also deswegen frage ich mal hier ...

ich wuerde gern ein Bild aus dem Internet laden (als ImageGadget), ohne dass man es auf der Festplatte speichern muss. Geht das?

Code: Alles auswählen

LoadImage(0, "http://www.eineseite.com/bild.bmp")
klappt jedenfalls nicht :mrgreen:
Bild + Bild

Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Code: Alles auswählen

ReceiveHTTPFile("http://www.eineseite.com/bild.bmp","bild.bmp")
>ohne dass man es auf der Festplatte speichern muss

Code: Alles auswählen

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    WebGadget(1,10,10,350,150,"http://www.google.de/intl/de_de/images/logo.gif",0)
  EndIf
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

oder mal die MSDN fragen nach
URLDownload_(
URLDownloadToCacheFile_(

abr vorrsicht:
so ein API-Zugriff wird von den meisten Virenscännern angemeckert,
wenn dein Proggi kein Zertifikat mit sich rumträgt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Vielleicht mal ins CodeArchiv schauen :wink:

Code: Alles auswählen

; German forum: http://www.purebasic.fr/german/archive/viewtopic.php?t=2808&highlight=
; Author: dige (updated for PB4.00 by blbltheworm)
; Date: 12. November 2003
; OS: Windows
; Demo: No

Procedure.l DownloadToMem ( URL.s, *lpRam, ramsize.l ) 
  Protected agent.s, hInet.l, hData.l, Bytes.l 
  
  ;  #INTERNET_OPEN_TYPE_DIRECT    = 1 
  ;  #INTERNET_DEFAULT_HTTP_PORT   = 80 
  ;  #INTERNET_SERVICE_HTTP        = 3 
  ;  #INTERNET_FLAG_NO_CACHE_WRITE = $4000000 
  ;  #INTERNET_FLAG_RELOAD         = $8000000 

  agent.s = "Mozilla/4.0 (compatible; ST)" 
  hInet.l = InternetOpen_ ( @agent.s,0,0,0,0 ) 
  hData.l = InternetOpenUrl_ ( hInet, @URL.s, "", 0, $8000000, 0 ) 
  
  If hData > 0 : InternetReadFile_ ( hData, *lpRam, ramsize.l, @Bytes.l ) : Else : Bytes = -1 : EndIf 
  
  InternetCloseHandle_ (hInet) 
  InternetCloseHandle_ (hFile) 
  InternetCloseHandle_ (hData) 
  
  ProcedureReturn Bytes.l 
EndProcedure 

; Bsp: 
UseJPEGImageDecoder() 
mem.s = Space(63000) 
;CallDebugger
If DownloadToMem ( "http://www.purearea.net/pb/pics/purearea4.jpg", @mem, 63000 ) 
  If CatchImage(0, @mem) 
    hWnd = OpenWindow(0, 0, 0, ImageWidth(0), ImageHeight(0), "PB-Logo" , #PB_Window_ScreenCentered | #PB_Window_SystemMenu) 
    CreateGadgetList( hWnd ) 
    ImageGadget(0, 0, 0, WindowWidth(0), WindowHeight(0), ImageID(0)) 
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow 
  EndIf 
EndIf 
Macht nämlich genau was Du möchtest
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag von Dare Devil »

@RSBasic
Der erste Befehl geht nicht - ist auch nicht in der Hilfe vorhanden ...
Die Idee mit dem WebGadget ist zwar gut (und simple), aber leider fuegtg es noch die seitliche Scrollleiste mit ein... kann man die irgendwie rausnehmen?

@Kaeru Gaman
Naja dein Virenscanner hat sogar bei einer Datei gemeckert, die weder Internetverbindung aufgebaut hat, noch irgendwelche Dateien ausgelesen oder geschrieben hat :mrgreen:
Spass beiseite, kann man so ein Virenscannergemecker verhindern? Hab ausserdem noch nie mit der API gearbeitet ... muss mich dann wohl erstmal umguckn wie das geht /:->
Bild + Bild

Bild
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag von Dare Devil »

@ts-soft
ja funktioniert :D

danke fuer eure Hilfe :allright:
Bild + Bild

Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Dare Devil hat geschrieben:@RSBasic
Der erste Befehl geht nicht - ist auch nicht in der Hilfe vorhanden ...
Du sagst uns ja auch nicht, welche PB-Version du nutzt.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

NicTheQuick hat geschrieben:
Dare Devil hat geschrieben:@RSBasic
Der erste Befehl geht nicht - ist auch nicht in der Hilfe vorhanden ...
Du sagst uns ja auch nicht, welche PB-Version du nutzt.
Augen auf? :mrgreen:
Oder noch verklebt von der letzten Studi-Party?
Signatur-Button übersehen?
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das is aber in der 4.2 drin...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Da fehlt auf jedem Fall das InitNetwork(), weil so funzt das nicht :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten