Convertir image en texte

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 27 mai 2015 à 17:17
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 29 mai 2015 à 11:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/101043-convertir-image-en-texte

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
29 mai 2015 à 11:54
Je suis tout a fait d'accord que les caractères sont en Noir et blanc et qu'ils te donneront une image de sortie en noir et blanc. Mais si tu mets une image couleur au départ les rgb des pixels ne sont pas les mêmes, c'est pour cela que je converti l'image en noir et blanc avant de parcourir les pixels. J'ai fait l'expérience des 2 manières, le résultat est différent.

Mais là on chipote. Le but de ce programme c'est de parcourir les pixels et de les remplacer par des caractères.

Cela fait toujours plaisir d'échanger des idées avec des anciens membres CodesSources

@+
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 29/05/2015 à 11:58
Oui
encore 2 points

Ne pas forcer qu'il y ait des AAA plutôt enable le cmdconvertir

Private Sub Textcaractere_TextChanged ........
If Textcaractere.Text = String.Empty Then
cmdconvertir.Enabled = False
Else
cmdconvertir.Enabled = True
End If

C'est mieux de laisser l'image original donc j'ai retiré Picsource.Image = bm
tu as écris
Le programme redimensionne l'image, la met en noir et blanc et la converti avec les caractères que vous désirez.
Est ce la met en noir et blanc est lier à convertir avec les caractères que vous désirez. ?
aussi j'écris le code du cmdconvertir_Click ainsi
Private Sub cmdconvertir_Click(sender As System.Object, e As System.EventArgs) Handles cmdconvertir.Click
If Picsource.Image Is Nothing Then Exit Sub
Dim r_color As Color
'Noir et blanc
' http://codes-sources.commentcamarche.net/source/53227-colormatrix-vb
img = Image.FromFile(cheminsource)

Dim r As Integer = CInt(img.VerticalResolution)
' redimensionner
'crée un Bitmap à partir de Picsource
Dim MyBitmap As New Bitmap(Picsource.Image)
'crée un Bitmap avec la nouvelle taille
Dim bp As New Bitmap(250, 250)
Dim g As Graphics = Graphics.FromImage(bp)
'copie l'image source dans la nouvelle image
g.DrawImage(MyBitmap, 0, 0, bp.Width + 1, bp.Height + 1)
bp.SetResolution(r, r) 'resolution origine

'convertir
newimage = New Bitmap(chemin)
Picdestination.Image = newimage
Dim graph As Graphics = Graphics.FromImage(newimage)
For y As Integer = 0 To bp.Width - 1 Step 5 'boucle sur toutes les lignes horizontales
For x As Integer = 0 To bp.Height - 1 Step 5 'boucle sur toutes les lignes verticales
r_color = bp.GetPixel(x, y)
If r_color.R <= 200 And r_color.B <= 200 And r_color.G <= 200 Then
graph.DrawString(Textcaractere.Text, New Font("Arial", 2, FontStyle.Regular), New SolidBrush(Color.Black), x, y)
ElseIf r_color.R >= 220 And r_color.B >= 220 And r_color.G >= 220 Then
graph.DrawString(Textcaractere.Text, New Font("Arial", 2, FontStyle.Regular), New SolidBrush(Color.White), x, y)
Else
graph.DrawString(Textcaractere.Text, New Font("Arial", 2, FontStyle.Regular), New SolidBrush(Color.Gray), x, y)
End If
Next x
If y = 250 Then Exit Sub
Next y
End Sub


cela marche aussi

Si on permet plus de 10 caractères ça rend un peu dessin peint au fusain lol
Bonne prog
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
29 mai 2015 à 09:21
Merci beaucoup ShayW, c'est exactement ce qu'il fallait faire. Cela évite tout problème avec les conflits de fichiers. Maintenant l'utilisateur peut ouvrir les fichiers images à la suite sans devoir fermer l'appli.

Une nouvelle mise à jour a été déposée

Bonne journée,

@+ Le Pivert
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
28 mai 2015 à 14:12
Ce n'est pas encore au point
j'aurais plutôt procédé ainsi
sans sauvegarder NB et redim dans le dans le dossier Debug
tu te sers de leurs bitmap
bonne prog
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
28 mai 2015 à 10:51
J'ai fait une mise à jour en empêchant l'ouverture des fichiers NB et redim

Si tu vois d'autres bug!

@+ Le Pivert
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
28 mai 2015 à 08:04
Bonjour Shayw,

Ce n'est pas un bug, si l'on se sert correctement de l'appli.

A l'ouverture d'une image, elle est redimensionnée et mise en Noir et blanc pour les besoins de la conversion.
Ces fichiers redim et NB sont crées dans le dossier Debug de l'application.
Il est bien évident que si l'on ouvre un de ces fichier il va y avoir un conflit. On ne peut pas recréer un fichier avec le même nom. Ce n'est pas le but de ce programme!

J'ai mis des fichiers exemple dans le dossier Debug, c'est juste pour les tests.

@+ Le Pivert
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 27/05/2015 à 23:09
Bonjour

un petit bug je crois

Je lance le prog et click sur ouvrir image et click sur une image disons johnny.jpg et ferme l'application
je relance de nouveau et accède au même folder que précédemment et je vois
2 nouveaux fichier NB.JPG et redim jpeg
si je clique sur un des deux une erreur gdi survient
à quoi sert
 saveimg(cheminDestination, bp)
de
la sub
Public Sub RedimensionnerImage(,,,,,,,,,,,

et la tu crées deux fichiers Nb et redim
Rejoignez-nous