comment sauvegarder une image dans un fichier [VB] - VB/VBA/VBS - Programmation
Marsh Posté le 17-06-2002 à 10:58:01
thunderbird54 a écrit a écrit : voila, j'ai trouver sur internet les sources d'un prog permettant de recuperer l'icone d'un fichier, malheureusement ce fichier ne permet pas de le sauvegarder sur le disque dur! quelle commande dois je utiliser? ca serait pour utiliser l'icone dans une image listview merci |
tu peux préciser un peu ?
c un peu flou
Marsh Posté le 17-06-2002 à 16:11:39
voici le code
Option Explicit
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" _
(ByVal lpszFile As String, _
ByVal nIconIndex As Long, _
phiconLarge As Long, _
phiconSmall As Long, _
ByVal nIcons As Long) As Long
Private Declare Function DrawIconEx Lib "user32" _
(ByVal hDC As Long, _
ByVal xLeft As Long, _
ByVal yTop As Long, _
ByVal hIcon As Long, _
ByVal cxWidth As Long, _
ByVal cyWidth As Long, _
ByVal istepIfAniCur As Long, _
ByVal hbrFlickerFreeDraw As Long, _
ByVal diFlags As Long) As Boolean
Private Declare Function DestroyIcon Lib "user32" _
(ByVal hIcon As Long) As Long
' Valeur de diFlags pour DrawIconEx
'Const DI_MASK = &H1
'Const DI_IMAGE = &H2
Const DI_NORMAL = &H3
'Const DI_COMPAT = &H4
Private Sub Command1_Click()
Dim sFilename As String
Dim nIconIdx As Long
Dim hSmallIcon As Long
Dim hLargeIcon As Long
Dim pDessin
Dim gDessin
Dim Extraction
Dim Ind
commonddialog1.showopen
sFilename = commonddialog1.filename
'Renvoie le nombre total d'icônes du fichier
Ind = ExtractIcon(Me.hDC, sFilename, -1)
Label1.Caption = "Nombre d'icones dans le fichier = " & Ind
If Ind > 0 Then
'Dans les fichiers l'index de la première icône est toujours 0
nIconIdx = 0
Do While nIconIdx < Ind
'Renvoie le nombre d'icone extrait (ou 0 si erreur)
Extraction = ExtractIconEx(sFilename, nIconIdx, hLargeIcon, hSmallIcon, 1)
Label3.Caption = "Index d'icone = " & nIconIdx
Picture1.Cls
Picture2.Cls
' dessine les icones dans les PictureBox
pDessin = DrawIconEx(Picture1.hDC, 1, 1, hSmallIcon, 0, 0, 0, 0, DI_NORMAL)
gDessin = DrawIconEx(Picture2.hDC, 1, 1, hLargeIcon, 0, 0, 0, 0, DI_NORMAL)
' Détruit l'icone extrait de la memoire
DestroyIcon hSmallIcon
DestroyIcon hLargeIcon
nIconIdx = nIconIdx + 1
DoEvents 'pour raffraichir l'affichage et ne pas bloquer le système
Loop
End If
End Sub
Private Sub Form_Load()
'************************************************************
'* NOM : ExtractIcon
'* DATE : 14/11/1998
'*
'* AUTEUR : J-Luc
'*
'* CODE TROUVE SUR "Le petit monde de Visual Basic"
'* http://www.vbasic.org
'*
'* DESCRIPTION :
'* Permet d'extraire toutes les icônes contenues dans un fichier
'*, en petite taille (16x16) ainsi qu'en grande taille (32x32)
'* Les icônes sont ensuite placés dans un contrôle PictureBox,
'* ce qui permet d'en faire ensuite ce qu'on veut : les affecter
'* à un autre contrôle comme un ImageList....
'*
'* A noter : dans cet exemple, les icônes défilent à la suite
'* les unes après les autres sans interruption jusqu'à la dernière icône.
'* A vous d'adapter cet exemple en fonction de vos besoins bien sûr
'*
'************************************************************
End Sub
et mon besoin est de sauvergader la grande icone contenu dans hLargeIcon
Merci!
Marsh Posté le 22-06-2002 à 06:46:19
Met les picture box avec autoredraw = true et ajoute ca :
Private Sub SauveImage()
SavePicture Picture1.Image, "g:\temp\test.bmp"
End Sub
C'est de moi (change le chemin, évidemment).
Marsh Posté le 22-06-2002 à 16:27:58
ah merci
t trop fort kom gars, en plus t dans toute les branche musiques, prog...
re merci, ca m'aide bien!
Marsh Posté le 15-06-2002 à 21:35:22
voila, j'ai trouver sur internet les sources d'un prog permettant de recuperer l'icone d'un fichier, malheureusement ce fichier ne permet pas de le sauvegarder sur le disque dur!
quelle commande dois je utiliser?
ca serait pour utiliser l'icone dans une image listview
merci