jeudi 22 avril 2010

version bêta de l'application de traitement des fichiers images

Vous avais-je déjà parlé d’une application java permettant de travailler des images en noir et blanc pour les coloriser ( avec de nombreuses fonctionnalités ).

Elle est quasiment finie, autant en faire un billet.

Copie d’écran

 

 

 

 

 

 

 

 

 

Fonctionnalités

  • recharger une image
  • sauver
  • sauver sous
  • supprimer
  • charger un répertoire
  • quitter l’application
  • réduire le nombre de couleurs
  • zoom in
  • zoom out
  • nettoyer ( effacer les points parasites )
  • rotation +90°
  • rotation -90°
  • fill couleur ( borné par autre couleur )
  • remplacer une couleur
  • prélever une couleur
  • couper
  • définir un rectangle
  • bookmarquer
  • dé-bookmarquer
  • statistiques des couleurs de l’images
  • mesurer les dimensions
  • plein écran
  • dans le navigateur
  • trouver un code couleur

fichiers de ressources ( property file )

  • un fichier pour gérer les paramètres de l’application
  • un fichier pour gérer les éléments du menu
  • un fichier pour chaque fournisseur de couleur à afficher dans une jtable

Et concernant les images traitées ?

  • elles sont stockées dans un BufferedImage
  • plutôt que d’utiliser les fonctions java de transformations affines, les rotations sont traitées directement par permutations dans un repère (x,y)
  • la fonction fill est assez rapide, moins de 3 secondes pour traiter une grande zoe ) borner ( 1 seconde pour substituer tous les points d’une image ( 1000 * 1000 pixels )
  • la fonction ‘sauver sous’ sauve les images au format png ( RVB sans alpha )

Et concernant les couleurs utilisées ?

  • voir les billets précédents
  • chaque ligne est de la forme code_couleur.rgb=0x??????
  • un comparator est utilisé avec les jtable pour gérer les données stockées dans des listes triées. Il faut que ‘h12’ s’affiche avant ‘h101’ etc.
  • les jtable statistiques et (un)bookmark sont mise à jour directement à partir des click de souris sur l’image

Autres informations

  • pas mal de design patterns utilisés, pas mal de découplage des différents composants avec un pattern Observer amélioré
  • pas mal de classes génériques paramétrées utilisées
  • création d’un générateur automatique de remplissage d’un Jmenu et d’un JtoolBar ( voir copie d’écran )
  • la fonction undo a été retirée, le stockage des images étant très volumineux, une petite centaine d’actions ( avec sauvegarde des images ) sature la mémoire sur mon PC. Les 10 dernières actions auraient pu être gérée
  • un splash screen pour afficher les informations durant le chargement de l’application

Fonctionnalités à rajouter ?

  • éclaircir / foncer des couleurs
  • améliorer les contrastes ( il y a des algorithmes sympas ;) )
  • appliquer des filtres
  • en bref, réinventer ce que font photoshop, the Gimp et autres logiciels de traitement d’images
Dans l’intervalle, les fonctions existantes sont bien suffisantes dans la plupart des cas.

Aucun commentaire:

Enregistrer un commentaire