Qualité de Icon.Save

MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012 - 26 août 2009 à 04:18
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009 - 31 août 2009 à 10:46
j'essais de faire un petit programme qui permet d'extraire une icone dans un picturebox, et la sauvegarder dans un fichier ico.
tous marche bien, on commence par ouvrir un ficher :
        If OpenFileDialog1.ShowDialog = DialogResult.OK Then
            Dim MyIcon As Icon = Nothing
            MyIcon = Icon.ExtractAssociatedIcon(OpenFileDialog1.FileName)
            PictureBox1.Image = MyIcon.ToBitmap
        End If

premiere partie, parfait.

maintenant quand je click un bouton :
        Dim sfd As New SaveFileDialog
        sfd.Filter = "*.ico|*.ico"
        If Not PictureBox1.Image Is Nothing Then
            If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
                Dim file As FileStream = New FileStream(sfd.FileName, FileMode.OpenOrCreate)
                MyIcon.Save(file)
                file.Close()
                MyIcon.Dispose()
            End If
        End If


ok. lr probleme que la qualité de l'icone est trop mauvaise. je remarque que la taille du fichier est à 700 octets presque. même si on vois bien l'icone dand le picturebox en haute qualité, mais c'est foutu après le sauvegarde.

ce code est genial parceque il me permet de créer une icone bien determiné (32*32, une seule image) mais le problem c'est la qualité.

quelqun peut m'aider?? merci.
A voir également:

64 réponses

Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:09
On a les idées, mais surtout: "La HUMAN INTERFACE".
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:15
en fait j'ai cru que la taille de l'icone est readonly, j'ai pas pensé a crée une nouvelle icone avec taille preci (même si ça fait rien, icone reste 32*32 O.o xD)
oué merci on tt K ^^
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:18
Pardonne-moi, J'ai raté ton dernier message.

Le transtypage, c'est juste d'utiliser une variable tampon avec plus de mémoire: d'affecter (=) l'ICON au Bitmap. Le reste c'est kif. pour des programmeurs comme nous, c'est un jeu d'enfant. N'est-ce pas?
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:21
Bravo !
Décidément, j'ai toujours un message de retard.
0

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

Posez votre question
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:25
looolz... tkt t'as rien raté :p
emmm c à dire une varible de type icon, reste une varible de type icon xD on peut rien....
tu crois que je doit marquer ça comme repense acceptée?? :p
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:33
Il est beau le Windows de demain qu'il faudra réserver la mémoire la veille pour les icones, comme quand on veut gérer soi-même le scrolling d'une page internet que sa taille est private quelque part.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:34
C'était quoi la question?
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:36
xDD
Re : qualité de Icon.Save
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:38
On obtient la qualité ad hoc.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:45
'C'est comme ça que je fais avec les icones:

''' <summary>
''' Extraire les icones d'un fichier.
''' </summary>
''' <remarks></remarks>
Public Class IconEx
Dim Handle As New IntPtr
Declare Function Extracticon Lib "Shell32.dll" Alias "ExtractIconA" _
(ByVal hInst As Integer, ByVal lpszExeFilename As String, _
ByVal nIconIndex As Integer) As Integer

Private Function GetNumberOfIcons(ByVal Str As String) As Integer
'Nombre d'Icones dans les ressources du fichier de path "Str"
Return Extracticon(Me.Handle.ToInt32, Str, -1)
End Function

Public Function Bitmapicon(ByVal FileName As String, Optional ByVal IconIndex As Integer = 0) As Bitmap
Try
Dim retval As Integer = Extracticon(Handle.ToInt32, FileName, IconIndex)
Return Icon.FromHandle(New IntPtr(retval)).ToBitmap
'Return Icon.ExtractAssociatedIcon(FileName).ToBitmap
Catch ex As Exception 'Pas de fichier par exemple
Return My.Application.OpenForms(0).Icon.ToBitmap
End Try

End Function

End Class
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:48
xD mais regarde moi ça



je me sens pathedique de ne pas pouvoir reproduire une simple icone -_-"
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:49
xD mntennt c moi en retàrd xd
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:49
On peut voir que j'ai abandonné Extract... pour une raison que j'ignore, mais que je l'ai laissé en remarque pour bien faire remarquer que j'avais essayé. J'ai du ramasser le reste du code dans mdsn ou dans codesSources.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:54
C'est pas du 16 au départ
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:55
nah ya pas de problem dans l'extraction de licone
ICON.ExtractAssociatedIcon(FileName) me suffir.
icon.tobitmap me donne une image de bonne qualité, ce qui signifie que ma variable icon a pour valeur une icone de bonne qualité.
le blem c'est la sauvegarder snif.
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:56
oui c 16, 32 ou 128, j'ai le meme resultat a la fin.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 22:57
En bitmap avec une piturebox comme variable tampon.
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 22:59
non ça marche pas. picturebox va me donner une image dans un fichier ico... pas exactement une icone.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
27 août 2009 à 23:00
C'est pas un problème de taille de l'image, c'est un pb de taille mémoire pour la couleur;
0
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
27 août 2009 à 23:03
oui je confirme...
0
Rejoignez-nous