Affichage des articles dont le libellé est BufferedImage. Afficher tous les articles
Affichage des articles dont le libellé est BufferedImage. Afficher tous les articles

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.