MiharbiDoNo
Messages postés150Date d'inscriptiondimanche 17 mai 2009StatutMembreDernière intervention25 mai 2012
-
26 août 2009 à 04:18
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 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:
Lorsque vous diffusez des annonces sur un moteur de recherche, si votre enchère est identique à celle de votre concurrent et que votre niveau de qualité est supérieur, où votre publicité s'affichera-t-elle par rapport à la sienne ?
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 27 août 2009 à 10:09
Regarde dans la bibliothèque pour les primitives, (postée hier) dans "listview ...Lanceur" posté le 25 pour l'exemple: j'ai pas rencontré de difficultés particulières. Je connais pas FileStream...
MiharbiDoNo
Messages postés150Date d'inscriptiondimanche 17 mai 2009StatutMembreDernière intervention25 mai 2012 27 août 2009 à 15:07
trouvé. merci pour ta reponse.
mais mon problem n'est pas le chargement d'une icone, mais dans l'enregistrement sous fichier.ico, ce dernier est de trés mauvaise qualité.
MiharbiDoNo
Messages postés150Date d'inscriptiondimanche 17 mai 2009StatutMembreDernière intervention25 mai 2012 27 août 2009 à 18:02
oui je peux l'utilisé, voila le resultat:
je fai picturebox.image.save("fichier.ico",imageformat.Icon)
matnant mon icon a une image, mais s'affiche pas dans l'explorer, tu peux voir son contenu que dans l'onglet detail.
on plus, si j'essai de recharché l'icone dans la variable icon et l'afficher dans le picturebox à nouveau,j'vais avoir cette icone blanche, pas celle dans détails.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 27 août 2009 à 18:19
Tu as sauvegardé une image. Maintenant, il faut lui affecter elle-même comme icone et cesser de mélanger la nature de l'objet (type de donnée) et son usage (Le système mémorise le chemin de l'image et le fichier à représenter avec cette image.
MiharbiDoNo
Messages postés150Date d'inscriptiondimanche 17 mai 2009StatutMembreDernière intervention25 mai 2012 27 août 2009 à 18:51
je crois pàs ke c'est çà le probleme, pàrceke
MyIcon.Save(streàm) fonctionne bien, juste ke sà donne une icone de àvec profondeur de couleur 32.
si je trouve une soluce pour àméliorer à 256, sà doi suffir. merci.
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 27 août 2009 à 19:28
Attends si tu as une profondeur de 32 c'est que ton icone est gérée comme une icone pas comme une image. A partir de vista, les posibilités s'amèliorent, mais les primitives restent compatibles sinon on feraient tous du pascal sur linux.
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 27 août 2009 à 20:24
Normalement, une icone c'est 16x16 et 24 couleurs. et ça fait déjà plusieurs fois que microsoft étends les caractéristiques. On a rien dit tant que nos 8088 pouvaient assummer, mais il était temps de changer de concept. Le nouveau Windows, et les changements sont peut-être apparus discrètement avec Windows 31 puis XP et puis on vendra des réparations tant qu'on pourra pas rebooter facilement de toutes façons ça sert à rien de s'inquièter: les états ont tellement investi dans les procédures de sécurité que le laguage C pourrait survivre encore très longtemps. (Je sais pas pourquoi la démocratie investit autant dans l'abrutissement: Les élites connaissent bien les besoins du cerveau pour s'épanouir "naturellement" au-dessus des autres, mais les bourgeois ??? c'est incompréhensible.et la télé?.. et la programmation?
)
Donc Microsoft tourne la page et adopte de nouveaux vocables pour pas écraser les anciennes procédures et rester compatible. Tout le monde se plaint qu'on retrouve plus rien. C'est comme l'adresssage étendu ou multiplexé: on apprend d'abord à apprendre.
Et on a de la chance d'utiliser des bitmaps, parce qu'il y a encore les graphes, le dessin vectoriel, les textures, les frames, et surement encore bien d'autres façons de coder l'image que je préfère pas connaitre.
Les petites icones c'était bien sympa pour dicerner ses dossiers, mais le bandeau se fait de plus en plus grand avec les progrès de la définition et les images de plus en plus grosses avec l'inflation de la mémoire (c'est du sable fondu avec beaucoup de gros salaires)
Si on veut continuer à voir les icones malgré l'augmentation de la définition, il faut bien agrandir.
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 27 août 2009 à 21:19
J'ai un peu de temps à présent. (j'ai fait mon premier programme d'exemple cet après-midi.) Mainytenant je met tes icones dans la bibliothèque.
Tu disais:
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
Dim MyIcon As Icon = Nothing
MyIcon = Icon.ExtractAssociatedIcon(OpenFileDialog1.FileName)
PictureBox1.Image = MyIcon.ToBitmap
End If
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 27 août 2009 à 21:52
C'est bien ça: on transtype, mais c'est pas encore automatique. On attends la prochaine version de vb qui corrigera le pb (environ tous les 15 ans pour les icones)ou on travaille en bitmap (transtypage manuel = temps de travail pour le programmeur = factures...) Si c'est ça, je retourne au wpf: autant refaire windows en 3D.
Londonic
Messages postés298Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention26 septembre 2009 27 août 2009 à 22:01
Si ton programme fonctionne avec mes procèdures, celà signifiera que la table des vecteurs d'interruptions qui est maintenant encapsulée dans la puce est mise à jour et que donc Bill va devoir bien s'accrocher pour pas se faire larguer par les constructeurs Hi HI HI... Heureusement qu'on est là!