|
|
|
|
- | <rubrique id="4" />
| |
- | [[Catégorie:Projets]]
| |
- | [[Catégorie:java]]
| |
- | {{Infobox Projet
| |
- | | name = Millie
| |
- | | caption = Logo
| |
- | | auteurs = Florent Humbert
| |
- | | langage de programmation = {{Link|Java}}
| |
- | | version stable= 1.2.1
| |
- | | plateformes = Linux, Mac OS X, Windows
| |
- | | langues = Français
| |
- | | statut = En développement
| |
- | | license = GNU GPL
| |
- | | type = Logiciel de retouche et traitement d'images
| |
- | | site web = [http://www.developpez.net/forums/d607158/applications/projets/projets-heberges/millie/presentation-millie-gui-traitement-images/]
| |
- | }}
| |
| | | |
- | Ce tutoriel a pour but de montrer comment développer des plugins pour la bibliothèque et l'IHM Millie.
| |
- |
| |
- | Une première partie détaillera le système de plugin hérité de la version 1.0.0 tandis que la seconde détaillera les nouveaux concepts introduit avec la version 2.0.0.
| |
- |
| |
- | == Système basique de plugins ==
| |
- |
| |
- | L'application est structurée selon plusieurs archives java JAR :
| |
- |
| |
- | * Millie.jar qui correspond à la bibliothèque de traitement d'images
| |
- | * MilliePlugins.jar qui est l'unique bibliothèque à devoir utiliser pour ajouter et développer des plugins
| |
- | * MillieGUI.jar qui est une IHM devloppée en Swing
| |
- | * MillieCommand.jar qui permet d'appeler les filtres et les plugins en ligne de commande
| |
- | * MillieCommons.jar qui correspond aux codes partagées entre les différentes IHM
| |
- | * plugins/MillieCoreFilter.jar qui est une archive de plugins qui correspond à ce qu'il y a dans le menu Filtre
| |
- |
| |
- | Un plugin correspond donc à un fichier JAR qui est ajouté dans le dossier plugins. Il suffit alors de relancer l'application ou d'utiliser le menu Plugins/Refresh pour prendre en compte le plugin.
| |
- |
| |
- | === Contenu de l'archive MilliePlugins ===
| |
- |
| |
- | Cette bibliothèque contient un ensemble de classe pour développer les plugins.
| |
- |
| |
- | Des classes pour définir des types de filtres :
| |
- |
| |
- | * GenericPluginFilter qui correspond à tous les filtres sans interaction de la souris avec l'image (exemple : convolution, flou gaussien)
| |
- | * AreaPluginFilter qui correspond aux filtres utilisant la souris pour appliquer une opération à un certain point (exemple : flou local)
| |
- | * RectangularPluginFilter qui correspond aux filtres utilisant un rectangle de sélection pour le calcul (exemple : Rogner)
| |
- | * NoParameterPluginFilter qui correspond à un filtre sans paramètre (il ne faut que l'image d'entrée) (exemple : Dilation)
| |
- |
| |
- | Des classes pour définir des types de paramètres :
| |
- |
| |
- | * CheckBoxParameter pour les checkbox
| |
- | * ComboBoxParameter pour les combobox
| |
- | * DoubleSliderParameter pour des sliders de type double
| |
- | * DoubleTextFieldParameter
| |
- | * ImageParameter pour choisir dans une combobox une autre image déjà ouverte
| |
- | * IntSliderParameter
| |
- | * IntTextFieldParameter
| |
- | * RadioButtonGroupParameter
| |
- | * TextFieldParameter
| |
- |
| |
- | Les classes de paramètres et de définition des filtres sont totalement indépendantes de SWING et du rendu. Grosso modo, les filtres ne contiennent que le traitement métier et une table des paramètres.
| |
- |
| |
- | Dans l'archive MillieGUI.jar, à chaque type de paramètre et à chaque type de filtre est associé un renderer qui sait afficher l'objet.
| |