Ascii art maker - conversion image - texte (ascii art)

Soyez le premier à donner votre avis sur cette source.

Vue 9 438 fois - Téléchargée 713 fois

Description

Ce petit programme (assez peu utile mais plutôt ludique) permet la conversion d'une image en texte.
Le principe est simple, au chargement, il pré calcule la luminosité de tous les caractères de bases (ASCII 33 à 255) puis les classe par ordre croissant.
Ensuite, il scanne l'image et estime la luminosité de chaque pixel (conversion en noir et blanc) afin de pouvoir piocher une lettre du tableau.
Enfin, il copie le tout dans le presse papier.

La source présente quelques points sympa.
D'abord, elle n'utilise pas qu'un jeux réduit de caractère mais estime la luminosité de tous les caractères possibles. Elle permet donc des dégradé plus fluide.
De plus, elle utilise un Bitmap.LockBits ce qui accélère nettement le traitement.

Conclusion :


En codant ce programme, j'ai découvert qu'il y a une différence énorme entre :
String MaChaine = "";
for... MaChaine += "abcd"

et StringBuilder.Append(...)

Le StringBuilder est plus rapide de l'ordre de 200 % sur les (très) grosse boucle !
Fait attention dorénavant !

PS : Ouvrer le texte avec notepad++ pour les grandes images.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
37 -
Serait été plus utile de mettre la fonctionnalité dans une classe à part, non?
Concernant StringBuilder, voire ce (vieux) poste de blog de coq: http://blogs.developpeur.org/coq/archive/2007/07/28/un-bon-moyen-de-se-souvenir-de-l-ami-stringbuilder.aspx
MaxSoldier
Messages postés
289
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 février 2009
2 -
Je ne vois pas l'intérêt de mettre mes méthodes dans une classe vu que le projet n'a qu'un seul but, que l'on se fiche de la portabilité et de la ré utilisabilité et qu'il n'y a que très peu de fonctions.

Pour l'article, il est bien marrant et très vrai !
++
cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
37 -
Qu'est ce qu'il ne faut pas entendre (ou plutôt lire)!
Pourquoi tu partages ton code sur codes-sources (de plus, comme tu le précises, un programme qui ne servira probablement pas à grand chose sauf à s'amuser un peu) ? Ben pour qu'on puisse voir comment ça marche dedans... (pas besoin de nous fourguer ton code sinon, l'exe est suffisant, non?). D'ailleurs, déjà dispo sur codes-sources:
http://tools.codes-sources.com/asciiArt.aspx

Alors si tu partages le code (ce qui est très appréciable), la moindre des choses c'est de faire quelque chose qui tient un peu la route... Dire qu'on se fiche de la réutilisabilité c'est quand même bien marrant voire même le comble pour un site d'échange comme codes-sources ou le but est justement de partager le travail avec les autres (dans l'optique, entre autres, qu'ils puissent réutiliser ce qu'on a fait).

Bref, hormis mettre en doute les capacités du programmeur, je ne vois pas comment on peu défendre une position comme la tienne. Absurde.
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
31 -
Je rejoins parfaitement l'avis de Bidou :)
MaxSoldier
Messages postés
289
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 février 2009
2 -
Je ne vois pas en quoi le fait de ne pas mettre mon code dans une classe empêche l'utilisateur de voir et de comprendre mon source. Ca ne nuit en rien au partage.

Quant à la ré-utilisabilité, je vois mal un utilisateur reprendre ce code autre que pour un projet qui n'a que ce but, i.e de générer des ASCII Arts. S'il le fait, je pense qu'encapsuler 4 méthodes et une structure ne lui prendra pas l'aprèm'. Si j'avais mis tout mon code dans le main, je dis pas mais là, chaque fonction a un rôle bien définit et clair, ce qui suffit amplement à en faire un code aux différentes parties ré-utilisables.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.