Page 1 sur 1

Loadimage_net(Adr$,nom_image$)

Publié : mar. 21/juin/2016 11:57
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


Re: Loadimage_net(Adr$,nom_image$)

Publié : mar. 21/juin/2016 13:21
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



Re: Loadimage_net(Adr$,nom_image$)

Publié : mar. 21/juin/2016 19:55
par Zorro
le passage par la ram est une bonne chose :)