10
votes

Comment créer un système.Drawing.icon avec plusieurs tailles / images?

Je voudrais créer un système unique.Drawing.Drawing.icon de manière programmatique à partir de 32x32, 16x16 bitmaps. Est-ce possible? Si je charge une icône avec - xxx

... il peut contenir plusieurs images.


0 commentaires

3 Réponses :


0
votes

Il y a une belle Snippet de code Ici . Il utilise le icon.fromhandle méthode.

du lien: xxx


0 commentaires

8
votes

Un fichier .ico peut avoir plusieurs images dedans, mais lorsque vous chargez un fichier .ico et créez un objet d'icône, une seule de ces images est chargée. Windows choisit l'image la plus appropriée basée sur le mode d'affichage actuel et les paramètres système et utilise celui-ci pour initialiser l'objet System.Drawing.Drawing.Drawing.Con , ignorant les autres.

Vous ne pouvez donc pas créer un system.drawing.icon avec plusieurs images, vous devez en choisir un avant de créer l'icône .

Bien sûr, il est possible de créer une icône au moment de l'exécution d'un bitmap, c'est ce que vous demandez vraiment? Ou demandez-vous comment créer un fichier .ico?


3 commentaires

Mais si je charge un fichier .ico comme si j'ai montré ci-dessus, je peux accéder aux 16x16, 32x32, 48x48, etc. Comme celui-ci -: icon Smallicon = nouvelle icône (myicon, 16, 16);


Parce qu'il sait quel fichier / ressource l'icône a été créée à partir de et peut y retourner et obtenir une nouvelle image. Il n'y a aucun moyen d'ajouter une image à un objet d'icône cependant.


@Johnkneller en fait, ce n'est pas vraiment vrai. Toutes les données d'image sont chargées par la classe de la classe en mémoire et lorsque vous redimensionnez l'objet d'une autre icône , les données d'image sont partagées et la taille la plus proche tirée de l'original ( Partagé) Données.



0
votes

Vous pouvez essayer d'utiliser png2ico pour créer un fichier .ico, appelez-le en utilisant < Code> System.Diagnostics.Process.start . Vous auriez besoin de créer vos images et de les enregistrer sur le disque avant d'invoquer PNG2ICO.


0 commentaires