OVH Cloud OVH Cloud

équivalent dans VBS ?

3 réponses
Avatar
Méta-MCI
Bonjour !


Les spécialistes de VBScript pourront certainement me donner l'équivalent
VBScript de ce code :
istream=IO.MemoryStream(Bytes)
image=System.Drawing.Image.FromStream(istream)
(je pense que c'est du VB, mais je ne suis pas sûr).

Merci d'avance.


@+

MCI

3 réponses

Avatar
Fred
dans : news:,
Méta-MCI écrivait :

Bonjour !


Bonjour Michel,

Les spécialistes de VBScript pourront certainement me donner
l'équivalent VBScript de ce code :
istream=IO.MemoryStream(Bytes)
image=System.Drawing.Image.FromStream(istream)
(je pense que c'est du VB, mais je ne suis pas sûr).


C'est bien du vb .NET
Malheureusement, il n'y a pas, à ma connaissance, de méthode pour
manipuler des flux binaires avec vbscript et les librairies usuelles.
C'est plus un problème de librairies que de langage je pense.
En attendant d'autres avis ...

On peut encapsuler des appels au framework dans des composants COM pour
les rendre utilisables en vbscript, vba ou vb6.
Cela peut-être un moyen de contournement et cela fonctionne très bien,
mais je n'ai jamais essayé de renvoyer un objet de type image par cette
méthode.


--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
http://www.mailfusible.com/?3kA6ftaCvT

Avatar
Jean
l'équivalent VBScript de ce code :
istream=IO.MemoryStream(Bytes)
image=System.Drawing.Image.FromStream(istream)


Evidemment, en PowerShell, cf filtre Out-Image :-)

En VBScript il y a la fonction LoadPicture qui *ressemble* à çà:

http://msdn.microsoft.com/library/en-us/script56/html/cc8ec37c-34d7-468c-87b9-40f0d111b12e.asp

mais pour manipuler l'objet picture après il n'y a rien en standard.

Maintenant si c'est juste pour faire un Save après, je me demande si
les 2 codes suivants utilisant XMLHTTP ne font pas ce que vous voudriez
faire :

Avec l'objet ADODB.Stream :

'---8<---Importer_Fichier_ADO.VBS---Jean-JMST-Belgium---

' http://automation.eu.tf/Importer_Fichier_ADO.VBS

' Routine pour importer un fichier du Web
' Usage :
' Importer_Fichier_ADO <url web|fichier local> <fichier local>

'~~~DEMO~~~

Importer_Fichier_ADO "http://www.microsoft.com","microsoft.txt"
Afficher "microsoft.txt"
Importer_Fichier_ADO "http://www.microsoft.com/"&_
"mscorp/images/Protect_140x99.gif",_
"microsoft.gif"
Afficher "microsoft.gif"
'~~~DEMO~~~

Sub Importer_Fichier_ADO(source,destination)
Set HTTP=CreateObject("MSXML2.XMLHTTP")
With HTTP
.Open "GET",source,False
.Send
End With
With CreateObject("ADODB.Stream")
.Type=1
.Open
.Write HTTP.ResponseBody
.SaveToFile destination,2
End With
End Sub

Sub Afficher(quoi)
CreateObject("WScript.Shell").Run quoi,,True
CreateObject("Scripting.FileSystemObject").DeleteFile(quoi)
End Sub
'---8<---Importer_Fichier_ADO.VBS---Jean-JMST-Belgium---

Avec l'objet FileSystemObject :

'---8<---Importer_Fichier_FSO.VBS---Jean-JMST-Belgium---

' http://automation.eu.tf/Importer_Fichier_FSO.VBS

' Routine pour importer un fichier du Web
' Usage :
' Importer_Fichier_FSO <url web|fichier local> <fichier local>

'~~~DEMO~~~
Importer_Fichier_FSO "http://www.microsoft.com","microsoft.txt"
Afficher "microsoft.txt"
Importer_Fichier_FSO "http://www.microsoft.com/"&_
"mscorp/images/Protect_140x99.gif",_
"microsoft.gif"
Afficher "microsoft.gif"
'~~~DEMO~~~

Sub Importer_Fichier_FSO(source,destination)
Set HTTP=CreateObject("MSXML2.XMLHTTP")
With HTTP
.Open "GET",source,False
.Send
r=.ResponseBody
With CreateObject("Scripting.FileSystemObject")_
.CreateTextFile(destination,True,False)
For i=LBound(r) To UBound(r)
.Write(Chr(AscB(MidB(r,i+1,1))))
Next
.Close
End With
End With
End Sub

Sub Afficher(quoi)
CreateObject("WScript.Shell").Run quoi,,True
CreateObject("Scripting.FileSystemObject").DeleteFile(quoi)
End Sub
'---8<---Importer_Fichier_FSO.VBS---Jean-JMST-Belgium---

Amicalement,

--
Jean - JMST
Belgium

Avatar
Jean
mais pour manipuler l'objet picture après il n'y a rien en standard.


Après avoir vérifié dans mon brouteur d'objets ça retourne un objet
stdPicture qui dipose de quelques propriétés et un méthode.

"StdPicture Object"
http://msdn.microsoft.com/library/en-us/vb98/html/vbobjPicture.asp

Propriétés Handle, Height, Width, Type et hPal :
http://msdn.microsoft.com/library/en-us/vb98/dt_vbobjPicture_P.asp

Méthode Render :
http://msdn.microsoft.com/library/en-us/vb98/html/vbmthrender.asp

'---8<---Jean-JMST-Belgium---
With LoadPicture("image.bmp")
WScript.Echo .Width,.Height,.Type,.Handle
'WScript.Echo .hPal
End With
'---8<---Jean-JMST-Belgium---

Ca ne fonctionne pas avec des fichiers distants.

Amicalement,

--
Jean - JMST
Belgium