Loadimage_net(Adr$,nom_image$)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Loadimage_net(Adr$,nom_image$)

Message par Zorro »

je remet ici cette procedure que j'avais pondu en son temp, mais que je ne retrouve plus ...

le but c'est de disposer une fonction Loadimage() , mais capable d'utiliser une image sur l'internet
au lieu d'une image en local
comme ça lorsqu'on partage un code sur le forum , ça resouds le probleme du partage des images qui vont avec

il suffit d'indiquer l'adresse internet de l'image a loader, et ça load .... on peut transposer ce principe a tout les medias (son,musique...)

Code : Tout sélectionner


Procedure.l Loadimage_net(Adr$,nom_image$)
	; By Dobro
	;Adr$=adresse du fichier image a charger
	;nom_image$ = nom qu'on donne a cette image
	; la procedure renvoi l'Id de l'image recupéré
	InitNetwork()
	If ReceiveHTTPFile(Adr$, GetTemporaryDirectory()+nom_image$)
		image=LoadImage(#pb_any, GetTemporaryDirectory()+nom_image$)
		DeleteFile(GetTemporaryDirectory()+nom_image$)
		Debug "image récupérée !"
		ProcedureReturn image
	Else
		ProcedureReturn -1
	EndIf
EndProcedure
; 
; Epb

Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Loadimage_net(Adr$,nom_image$)

Message par Ar-S »

Sans passer par le DD (fait en pb 5.50b1)
Je l'ai appelé CatchImage_Net du coup ;)

Code : Tout sélectionner

 InitNetwork()

Procedure CatchImage_Net(Adr$)
  Protected EXT.s, image
  ; By Ar-S
  EXT.s = LCase(GetExtensionPart(Adr$))
  Select EXT
    Case "jpg","jpeg"
      UseJPEGImageDecoder()
    Case "png"
      UsePNGImageDecoder()
  EndSelect
  
  *Buffer = ReceiveHTTPMemory(Adr$)
  If *Buffer
    Image = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer) )
    FreeMemory(*Buffer)
    ProcedureReturn Image
  Else
    ProcedureReturn 0
    
  EndIf
EndProcedure

; Testons ça !

Adresse$ = "http://ldvmultimedia.com/images/header.jpg"
MonImage = CatchImage_Net(Adresse$)

If Monimage <> 0
  If SaveImage( MonImage, GetCurrentDirectory()+"monimage.jpg")
    RunProgram("monimage.jpg")
  EndIf
Else
  Debug "Erreur d'adresse ou de fichier distant"
EndIf


~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Loadimage_net(Adr$,nom_image$)

Message par Zorro »

le passage par la ram est une bonne chose :)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Répondre