IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Icône, un programme de génération





Nouvelle version


Ce programme de construction très classique est réalisé en « cpp » avec l’atelier logiciel Microsoft Visual Studio Community 2019 utilisant l’architecture MFC document/vue. Les parties principales sont extraites d’un autre programme déjà publié : « Imager ». Parties modifiées qui pourraient facilement compléter ce dernier pour enrichir ses fonctions. Il permet de générer des fichiers d’Icônes à partir d’images (photos, copies d'écran ou génération de palette graphique) avec la possibilité de sélectionner une partie de l’original et de rendre des parties transparentes. Comme les formats sont très voisins, il est aussi capable de générer des fichiers de Curseurs avec la position du 'HotSpot'.



La classe d’affichage CImagerView (fichiers ViewImage.h et ViewImage.cpp) comporte par rapport à l’original les fonctions supplémentaires pour ce nouvel usage :


  • Sélectionner : Ouvre une classe CRectTracker permettant de définir une partie de l’image affichée. Cette partie pouvant être copiée dans le presse papier, transportée par un Drag/Drop sur une autre application ou utilisée par les fonctions internes suivantes. Comme les images des icônes sont carrées, un appel de la fonction avec une séléction déjà active permet d'égaliser la hauteur et la largeur.



  • Transparence : Ouvre la classe de dialogue CEditColorDlg (fichiers EditColorDlg.h et EditColorDlg.cpp) permet de déterminer une couleur de transparence avec masque de définition pour éliminer des parties de l’image non utiles. Ces parties étant calculées de proche en proche à partir des coins de la sélection. Cette classe de dialogue possède une zone d’affichage illustrant les tentatives de transparence. Une fonction supplémentaire permet de définir la position du 'HotSpot' dans le cas d'un curseur.



  • Générer Icône : Ouvre la classe de dialogue CIconCreateDlg (fichiers IconCreateDlg.h et IconCreateDlg.cpp) permet de créer le fichier d’Icônes ou de Curseurs. Différentes commandes disposées sur cette boite de dialogue permettent entre autre de choisir les différentes dimensions de motifs et de rendre transparentes des parties de l’image soit automatiquement à partir de la couleur des coins de l’mage soit à partir de la couleur et du masque déterminés par l’utilitaire précédent. Lorsque la sélection de l'image n'est pas carrée il est possible aussi pour ne pas déformer l'image de rendre transparents les suppléments nécessaires de l'icône ou du curseur.




Lorsque la couleur ne permet pas d’éliminer des parties gênantes de l’Icône il est toujours possible de transporter la partie sélectée (au niveau de ces trois fonctions) dans un programme de traitement d'images comme « Paint » pour compléter ce détourage et ensuite revenir générer l’Icône avec cette image retravaillée.



Ces fonctions sont appelées par le menu Edition lorsqu’une image est affichée. La dernière fonction génère une Icône (composée éventuellement de plusieurs grandeurs de motifs) affichée par la classe CIconCurView (fichiers ViewIconCur.h et ViewIconCur.cpp). Cette classe identique à la version d’origine (application Imager) permet de sauvegarder les Icônes ou les Curseurs générées. Une fonction nouvelle de cette classe permet de modifier la position du 'HotSpot' dans le cas d'un Curseur.


Fonctions communes


Dans ces différentes fonctions pour gérer images et icônes le programme « Icon » fait appel aux fonctions contenues dans les fichiers IconCur.h, IconCur.cpp, BitmapUtil.h et BitmapUtil.cpp, identiques à l’application d’origine. De plus notre programme utilise les classes classiques d’une application MFC pour le reste de ses autres traitements.



La détermination de la transparence utilise une particularité de Windows Gdiplus : Un pixel de couleur est défini par une valeur 32 bits décomposable en 4 champs de 8 bits (alpha, rouge, vert, bleu). La valeur alpha indique la transparence du pixel, la mesure dans laquelle sa couleur est fusionnée avec celle d’arrière-plan. Les valeurs alpha sont comprises entre 0 et 255, où 0 représente une couleur entièrement transparente laissant apparaître intégralement la couleur de fond, et 255 représente une couleur entièrement opaque, montrant sans altération la couleur définie par ces trois composantes RVB. Dans le cas de notre programme la transparence est gérée en tout ou rien (0 ou 255).



Une variété d’icônes utilise cette disposition 32 bits par pixel pour représenter l’image avec cette méthode de transparence mais cette version non standard n’est pas acceptée par tous les programmes. La méthode classique utilisée dans les icônes consiste à utiliser une bitmap supplémentaire de masque (AND) de 1 bit par pixel de mêmes dimensions que l’image pour indiquer les pixels transparents. Pour cela la procédure IconCopy() de IconCur.cpp permet la copie d’icônes en assurant la conversion de 32 à 24 bits par pixel où la transparence est assurée par la bitmap supplémentaire de masque (format plus communément accepté).

D'autres exemples d'utilisation sont disponibles dans l'aide (Icon, chapitre "Exemples de réalisations").







Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.