Aide sur dll SWFToImage

Résolu
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008 - 6 oct. 2007 à 13:14
cs_Simeoni Messages postés 25 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 3 août 2009 - 3 août 2009 à 16:47
Bonjour a tous,

je reviens encore avec mon probleme d'utilisation d'un dll qui permet de recuperer les frames d'un fichier Flash.
mon but est de pouvoir afficher dans une picturebox, la frame N d'un fichier flash ..

j'ai trouve pour cela la librairie SWF To Image :
http://bytescout.com/swftoimage.html


ca semble etre parfaitement ce que je veux ( si vous avez mieu, je suis aussi preneur ! )
( le support me demande $95 pour de l'aide ! ... grrr )
l'aide est vraiment succinte : http://bytescout.com/help/SWFToImage/index.html

seulement, pas moyen de reussir a recuperer ma frame .. la fonction BinaryImage doit me retourner un tableau de byte contenant la frame ..
newbie, je n'arrive pas à le coller dans mon picturebox .. :(

je teste plusieurs methodes :
- setpixel : m'affiche un picturebox bleu !! et c'est TRES long ( inutilisable au final, meme si je reussi a afficher ma frame ! )
- marshal.copy ( que je ne comprend pas tres bien d'ailleurs ) me plante l'appli !

je pense que c'est tres simple, mais que le probleme c'est mon incompetence ! ..
si qq'un avait 5 mn a perdre avant le match de ce soir ! lol .. je suis a l'ecoute ...
je sais que ca ne se fait pas de demander.. mais un exemple fonctionnel serait super cool ...

merci bien ..

18 réponses

space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
24 févr. 2008 à 15:29
UNE SOLUTION !!?? Youpi !!


Public
Class Form1



Private



Sub
Form1_Load(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles



MyBase
.Load














Dim
SWFToImage = CreateObject(

"SWFToImage.SWFToImageObject"
)



SWFToImage.InitLibrary(





"demo" , "demo" )


SWFToImage.InputSWFFileName =




"C:\kiss.swf"







SWFToImage.ImageWidth = 64


SWFToImage.ImageHeight = 64




SWFToImage.ImageOutputType = 0




SWFToImage.Execute_Begin()




SWFToImage.Frameindex = 10




SWFToImage.Execute_GetImage()




TextBox1.Text = SWFToImage.Framescount




TextBox2.Text = SWFToImage.BinaryImageSize()










Dim X, Y AsInteger


X = SWFToImage.ImageWidth




Y = SWFToImage.ImageHeight










Dim image AsNew Bitmap(X, Y, Imaging.PixelFormat.Format32bppRgb)





Dim image_tab() AsByte





ReDim image_tab(SWFToImage.BinaryImageSize)


Array.Copy(SWFToImage.BinaryImage, image_tab, SWFToImage.BinaryImageSize)




'' Copies the Object array to the integer array.



image = BytesToImg(image_tab)




PictureBox1.Width = X




PictureBox1.Height = Y




PictureBox1.Image = image










End


Sub











Private



Function
BytesToImg(

ByVal
bmpBytes()

As



Byte
)

As
Image





Dim
ms

As
System.IO.MemoryStream =

New
System.IO.MemoryStream(bmpBytes)




Dim
img

As
Image = Image.FromStream(ms)     

' Do NOT close the stream!









Return img





End
Function




End



Class
3
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
7 oct. 2007 à 11:25
voici un exemple qui fonctionne :





' This example converts SWF file to BMP









Set SWFToImage = CreateObject("SWFToImage.SWFToImageObject")
SWFToImage.InitLibrary "demo", "demo"







SWFToImage.FrameIndex = FrameIndex


' set frame index









SWFToImage.InputSWFFileName = "sample.swf" ' input SWF file
SWFToImage.Execute
SWFToImage.SaveToFile "c:\sample.bmp"





comment je peux remplacer la derniere ligne pour obtenir ma frame dans une Image que je peux coller dans mon picturebox ?..
un truc du genre :
picturebox.image = SWFToImage.BinaryImage .. mais la ca plante !!! :(

please de l'aide !... je galere depuis 3 mois !!!!
0
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
7 oct. 2007 à 18:21
j'ai un retour du support ..
que comprenez vous par :
" BinaryImage returns OleVariant as an array of bytes " ???

kesako ca un OleVariant ?...

merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 oct. 2007 à 11:40
salut,
as-tu essayé de sauver le tableau de bytes en fichier puis de le charger dans la picturebox?
++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
8 oct. 2007 à 13:02
salut PCPT,

non j'ai pas essaye comme ceci ..
mais ca me semblerait un peut long comme methode car je dois traiter unitairement chaque frame de mon fichier flash..
en faite, des que j'essaye quelque chose sur le tableau SWFToImage.BinaryImage, j'ai un fatal error de mon appli !...

par contre, j'ai validé leur exemple qui sauve toutes les frames en bmp .. ensuite je peux effectivement les recharger dans mon picturebox.
mais c'est un peu lent ..
' This example converts SWF file to BMP

Set SWFToImage = CreateObject("SWFToImage.SWFToImageObject")
SWFToImage.InitLibrary "demo", "demo"

SWFToImage.InputSWFFileName = "sample.swf" ' input SWF file
SWFToImage.Execute
SWFToImage.SaveToFile "sample.bmp"
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 oct. 2007 à 22:38
essaye, au moins pour savoir si le tableau retourné est valide ;)
http://www.codyx.org/snippet_enregistrer-tableau-bytes-dans-fichier_5.aspx

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
9 oct. 2007 à 00:13
je viens d'essayer le lien que tu me dones, j'obtiens l'erreur :
"Impossible d'effectuer un cast d'un objet de type 'System.Byte[*]' en type 'System.Byte[]'."

avec ce code la :




Dim



SWFToImage = CreateObject(

"SWFToImage.SWFToImageObject"
)SWFToImage.InitLibrary(


"demo"
,

"demo"
)SWFToImage.InputSWFFileName =


"C:\Program Files\SWF To Image\Examples\kiss.swf"







SWFToImage.FrameIndex = 5

' set frame index

SWFToImage.ImageHeight = 64












SWFToImage.Execute_Begin()
If SWFToImage.Execute()
Then
' return true if conversion is ok

       Dim MonFileStream
As
New System.IO.FileStream(
"d:\test", System.IO.FileMode.Create)

       MonFileStream.Write(SWFToImage.BinaryImage, 0, SWFToImage.BinaryImageSize)
          <= erreur sur cette ligne en mode pas à pas

       MonFileStream.Close()

End
If

lol je comprend meme pas l'erreur ! ..
merci ..
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
9 oct. 2007 à 00:50
ton objet n'est pas chargé du txt, donc .BinaryImage
ne retournera rien
quant à l'erreur... j'peux pas la deviner ;)

Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
9 oct. 2007 à 14:18
mon objet ?... tu veux dire SWFToImage ?...

ben l'erreur, je te l'ai ecrite en debut du message !...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
9 oct. 2007 à 22:56
SWFToImage oui

que retourne SWFToImage.BinaryImage

et SWFToImage.BinaryImageSize
?
la syntaxe de MonFileStream.Write
est bien respectée?

pour l'erreur çà doit vouloir dire une conversion de tableau indéxé vers un tableau dynamique
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
10 oct. 2007 à 13:10
le support de Bytescout me repond ca :
.BinaryImage returns image in the form of byte array
.BinaryImageSize is the size of this array


et au niveau syntaxe, VB ne me genere pas d'erreur ..

en mode debug, je vois bien un tableau rempli de byte est un taille non nulle

si tu avais 5mn de plus, le plus simple serait que tu reproduises l'erreur chez toi..

sinon, merci tout de meme de ton aide ...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 oct. 2007 à 22:49
le pb est que tu utilies un composant payant et que mon PC DotNet est dédié que pour çà, j'ai pas trop envie de commencer à mettre un peu n'importe quoi...

si tu as la liste des inscriptions registre et autres sal***ries qu'écrit ta dépendance et que je peux tester sans serial alors héberges ton projet et tout ce qui va avec et je jèterai un oeil, à savoir que DotNet pour le moment.. c'est pas trop mon ami ^^

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
11 oct. 2007 à 14:20
non, la librairie est entierement gratuite ..
ce qui est payant est le support ..



 
http://bytescout.com/swftoimage.html


il suffit juste de referencer la dll dans vb.net ..
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 oct. 2007 à 23:09
je ne trouve pas directement la librairie, juste un exe...
obligé de passer par une install?
si oui, voir mon précédent comm

Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
11 oct. 2007 à 23:20
oups a ouai !..
je t'ai envoye un lien en privé pour recuperer cette dll ..
j'espere que c tout ce qu'il faut ?..

merci ;)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 oct. 2007 à 01:09
quelquechose me dit que l'exe n'est pas là pour rien ^^
0
space_walker Messages postés 84 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 22 juillet 2008
12 oct. 2007 à 14:45
bon .. :(

ben ok, merci d'avoir essayé et de m'avoir consacré un peu de temps ...

si tu as un autre poste ou tu peux installer l'exe ... n'hesites pas ! :)
0
cs_Simeoni Messages postés 25 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 3 août 2009
3 août 2009 à 16:47
Bonjour à tous...
Interessant tout çà...

Je travaille avec la dll SwfToImage (ou plutot Interop.swfToImage.dll pour ASP.NET / Win Server 2008)
Comment enregistrer la dll Interop avec RegSvr32. Ca ne veut pas s'enregistrer

Merci encore

Simo
0
Rejoignez-nous