INTRODUCTION

CodePaint est un logiciel de dessin vectoriel programmé en Java, par Christophe Leblanc en 2016 dans le cadre d'études personnelles au sujet de la programmation et du graphisme. Il est le fruit de nombreuses heures d'apprentissage, de réflexion et de travail. Au moment de sa conception, CodePaint était le plus gros projet sur lequel j'ai travaillé.

Bien qu'incomplet et ne pouvant rivaliser avec les plus gros logiciels de graphisme (par exemple Inkscape), il est toutefois capable de gérer de nombreux aspects du dessin vectoriel et permet même l'exportation d'images au format SVG (Scalable Vector Graphics).

Ce logiciel n'est actuellement plus en développement et ne bénéficiera peut-être pas de mises à jour avant longtemps. Il est distribué en l'état dans une optique de partage de sources et de connaissances et dans l'espoir qu'il soit utile à quelqu'un. Soyez indulgent en lisant les sources, CodePaint a été développé lorsque j'étais débutant, et avec du recul j'admets que certaines parties du code ne sont pas claires, inutiles ou pas du tout optimisées!

FONCTIONNALITÉS

En détails:

  • Dessiner des formes originales à partir de formes primitives (polygones) ou "point par point".
  • Créer des "chemins" à l'aide de points et de courbes (cubiques et quadratiques).
  • Gestion des couleurs de remplissage et contours (couleurs unies, dégradés indisponibles).
  • Gestion d'une scène complète en arborescence.
  • Agrandissement (zoom) et survol de la scène.
  • Possibilités de déplacer, déformer, tourner, modifier, colorier, renommer, grouper, cloner les objets de la scène.
  • Chargement et sauvegarde d'une scène dans un format XML original inspiré du SVG.
  • Exportation en image matricielle JPG, PNG.
  • Exportation en image vectorielle SVG.
  • Sélection d'un ou plusieurs objets depuis la vue en arborescence ou directement dans la vue de la scène.
  • Copier/Couper/Coller un ou plusieurs objets dans une même scène ou une autre.
  • Annuler/Refaire les dernières actions.
  • Choix des dimensions de la scène/image.
  • Logiciel bilingue Anglais/Français.
  • Raccourcis claviers.

INFORMATIONS TECHNIQUES

Java/Swing:

CodePaint a été programmé en JAVA (version 8 - JDK 1.8) avec l'environnement de développement Netbeans (dernière version utilisée pour le projet: 8.1). Il ne dépend d'aucune bibliothèque externe. Swing a été choisi comme interface graphique pour la simple et bonne raison qu'au moment de la conception de CodePaint, il m'était plus facile de programmer l'interface utilisateur de CodePaint de manière visuelle dans l'environnement de développement "NetBeans". Une réécriture du programme pour l'utilisation de l'interface graphique JavaFX a été envisagée avant d'être abandonnée.

Dessin vectoriel:

Ce logiciel permet de créer des dessins vectoriels aux couleurs unies et ne fait que ça. Il est impossible de créer des dégradés de couleurs ou d'intégrer une image matricielle dans la scène.

Gestion de scène:

CodePaint dispose d'un gestionnaire de scène efficace capable de gérer une arborescence complexe de groupes et d'objets, chacun des noeuds pouvant être renommé ou déplacé dans l'arborescence.

Sélection:

Ce logiciel permet la sélection et la manipulation de plusieurs objets en même temps, y compris s'ils ne sont pas dans le même groupe ou s'ils sont séparés les uns des autres par d'autres objets sur l' "axe Z". Un affichage multi-couches de la scène est assuré lorsque la sélection le nécessite.

Format de sauvegarde:

Le format de sauvegarde utilisé pour charger ou sauvegarder une scène est un format original inspiré du SVG et respectant la norme XML. Après avoir étudié et utilisé différentes possibilités pendant l'évolution du programme, ce choix a été fait pour satisfaire aux besoins de compatibilité avec "le monde extérieur".

Exportation d'images:

L'exportation d'image matricielle est effectuée par la fonction de capture de Canvas de Swing. L'exportation d'image vectorielle est quant à elle réalisée par un générateur original.

Moteur de rendu:

Le moteur de rendu utilisé est celui de Swing. L'accélération matérielle est indisponible.

Langues:

CodePaint est disponible dans deux différentes langues, l'Anglais et le Français. Il est équipé d'un gestionnaire de langues qui utilise une HashMap chargée au lancement du programme avec les valeurs correspondant à la langue sélectionnée.

INSTRUCTIONS

Lancer le programme:

CodePaint ne peut être lancé que sur un ordinateur équipé de Java. Si Java est installé sur l'ordinateur, il suffit d'exécuter le fichier ".jar".

Créer une nouvelle scène:

[Topmenu] > Fichier > Nouveau

Sauvegarder une scène:

[Topmenu] > Fichier > Sauvegarder sous

Ajouter un polygone:

Si une scène est active, faire un clique-droit dans la vue de scène et choisir "Ajouter". Ou, dans le panneau de scène (à droite), cliquer sur le bouton "+" en haut du panneau.

Sélectionner un ou plusieurs objets:

Il existe différentes façons de sélectionner des objets. Il est possible de le faire dans la vue en arborescence ("tree view") ou en cliquant directement dessus dans la vue de scène. Utiliser la touche "Contrôle" ("CTRL") du clavier pour ajouter ou enlever des objets à la sélection. Il est également possible d'utiliser l'outil de sélection "rectangulaire", qui permet de sélectionner plusieurs objets en même temps, en maintenant la touche "Escape" pressée.

Déplacement, rotation, échelonnement:

Choisir le mode désiré dans la boite à outils (panneau de gauche). Sélectionner un ou plusieurs objets et appliquer la transformation en déplaçant la souris tout en gardant son bouton gauche appuyé.

Enlever un objet:

Faire un clique-droit dans la vue de scène et choisir "Supprimer". Ou, dans le panneau de scène (à droite), cliquer sur le bouton "-" en haut du panneau.

Cloner un objet:

Aller dans le panneau de scène (à droite) et cliquer sur le bouton "++" en haut du panneau.

LICENCE

Ce programme est un logiciel libre, vous pouvez le redistribuer et/ou le modifier sous les termes de la licence GNU/GPL tels que publiés par la Free Software Foundation, version 2 ou supérieure (à votre convenance).

Ce programme est distribué dans l'espoir qu'il soit utile, mais SANS AUCUNE GARANTIE, sans même la garantie d'avoir une QUALITÉ MARCHANDE ou une QUELCONQUE UTILITÉ. Voir la licence GNU/GPL pour plus de détails.

CONTRIBUTION

La passion est primordiale aux développeurs pour leur permettre de continuer à développer des logiciels libres et les distribuer gratuitement. Toute contribution est la bienvenue pour maintenir cette passion en vie.

Vous pouvez contribuer de différentes manières:

  • Montrez moi ce que vous avez fait de ce programme ou de ses sources!
  • Faites vos remarques et donnez vos idées pour de futures mises à jour.
  • Faites un don pour que je puisse continuer à consacrer du temps à développer ce programme ou distribuer d'autre sources, tutos, et logiciels libres.

TÉLÉCHARGEMENT

EN RELATION

Creative Commons License

Ce document crée par Christophe Leblanc est publié sous licence Creative Commons Attribution-ShareAlike 4.0 International License.