ASCII ART CONVERTER
Implémentation d’un besoin client
2024
Lors de ma première année de BUT informatique, j'ai développé,sur une durée de 12-16h, avec mon binôme, une application en C++ répondant à la demande d'un client souhaitant convertir des images en ASCII art. L'application lit donc une image au format PGM, analyse chaque pixel en fonction de sa luminosité et le convertit en un caractère ASCII correspondant. Le résultat est ensuite enregistré dans la console ou dans un fichier texte, permettant de voir l'image sous forme de caractères textuels.
- - Développement en C++ : Écrire un programme capable de lire une image au format PGM, analyser chaque pixel et le convertir en caractère ASCII
- - Gestion des fichiers : Lire l'image source (PGM) et enregistrer le résultat dans un fichier texte
- - Optimisation et débogage : Corriger les erreurs et améliorer la vitesse de traitement de l'image
- - Travail en équipe : Collaborer efficacement avec mon binôme pour partager les tâches de développement et résoudre les problèmes rencontrés
Exemple de résultat de l’application
étapes
Développement d’un programme C++ lisant une image PGM et affichant son équivalent en ASCII art dans la console
Ajout de la possibilité d’enregistrer l’ASCII art dans un fichier texte (.txt) dont le nom est défini par l’utilisateur
Intégration de palettes de caractères modifiables via un fichier texte, permettant de changer les nuances de gris utilisées
Configuration simplifiée grâce à des arguments passés en ligne de commande (fichier image, fichier de sortie, palette)
Ajout d’une option pour redimensionner l’image ASCII, en ajustant sa largeur et sa hauteur
Capture d’écran du code et de la commande pour utiliser l’application
Capture d’écran du code
compétences
Techniques
- - Programmation en C++ : Développement d'une application pour lire et convertir des images PGM en ASCII art
- - Traitement d'images : Conversion des pixels en caractères ASCII en fonction des niveaux de gris
- - Gestion des fichiers : Lecture et écriture de fichiers (PGM et .txt), utilisation de palettes de caractères
- - Interface en ligne de commande : Configuration via des arguments pour personnaliser l'exécution du programme
- - Rééchantillonnage : Ajustement dynamique de la taille de l'image ASCII
Transversales
- - Collaboration : Partage des tâches et communication avec mon binôme.
- - Autonomie : Résolution de problèmes techniques et apprentissage sur le tas.
- - Gestion de projet : Suivi des étapes et respect des délais.
Humaines
- - Rigueur : Garantie de la fiabilité et de la précision du programme.
- - Créativité : Personnalisation de l'ASCII art et ajout de fonctionnalités.
- - Adaptabilité : Intégration de nouvelles fonctionnalités et ajustements selon les besoins
Académiques
- - Compétence 1 : Réaliser un développement d’application
- - Compétence 5 : Conduire un projet
- - Compétence 6 : Collaborer au sein d’une équipe informatique
Étant mon premier projet en C++, cela m’a permis de renforcer mes compétences en programmation et en manipulation d'images. L’intégration de fonctionnalités comme le rééchantillonnage et la personnalisation des palettes a rendu l'application plus complète, bien qu'un peu plus de temps aurait été nécessaire pour corriger les quelques bugs.
plus d'images
Exemple de résultat de l’application