Convertir émoticône vers du texte

Signaler
Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016
-
Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016
-
Bonjour, a tous

Je suis entrain de faire un logiciel de chat qui contient un richtextbox et une textbox et tout le reste pour la communication.

La Richtextbox affiche automatiquement les émoticônes. j'aimerai bien pouvoir copier une ligne ce celle-ci vers la textbox. Quand il n'y a pas d'émoticône pas de problème même quand il y a une émoticône ça coince.

Comment transformer l'émoticône (IMAGE, un BMP) en text ( ":)") ?

9 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Bonjour,
On ne peut "transformer" une image en texte.
Tu peux tout au plus constituer une collection de tes emoticones et affecter un texte à chacun d'entre eux, puis utiliser le texte correspondant à ton emoticone.
Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016

Merci de ta réponse,

Enfaite par transformer je voulait dire supprimer l'image et mettre un texte correspondant à la place.
En utilisant le clipboard j'ai réussi à isoler l'image (getimage) pour la comparer (pixel par pixel) à ma collection d'emoticones ( pour l'instant fichier par fichier) donc suite à la comparaison j'ai mon texte de "substitution" à l'image correspondante.
Mais le problème est de savoir où est l'image, sa position ensuite la supprimer et de rajouter le texte de substitution a cette même position.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
La Richtextbox affiche automatiquement les émoticônes

comment ? Je ne comprends pas "automatiquement".
En utilisant le clipboard j'ai réussi à isoler l'image

par quel code ?
ma collection d'emoticones ( pour l'instant fichier par fichier

Je ne comprends pas. C'est une collection ou un dossier ?
Tes questions et explications des tenants et aboutissants sont très imprécises.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016

La RTB affiche automatiquement les emoticone par "un" code (j'ai pas le code sous les yeux mais ça utilise comme une table.
Emoticone.add(":(", new bipmap (smile\smile1.png)
) a chaque modification de cette dernière elle vérifie si elle contient des caractères qui contenue dans emoticone ( :), :(,...) et remplacé par l'image correspondante.

Pour le clipboard si tu lui assigne une image
Clipboard.setimage(bipmap.fromfile("smile.png")
Ensuite si on Compare le contenue du clipboard au l'image source
On peux savoir quelle emoticone est dans le clipboard
Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016

les emoticone sont se sont des fichier indépendant qui sont dans un sous dossier de l'application, un dossier situe à la racine de l'application ils sont au format png
Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016

pour comparer j'utilise cette fonction
Public Function CompareImages(ByVal img1 As Bitmap, ByVal img2 As Bitmap) As Boolean
    Dim i As Integer
    Dim j As Integer

    For i = 0 To img1.Width - 1
        For j = 0 To img2.Height - 1
            If img1.GetPixel(i, j) <> img2.GetPixel(i, j) Then
                Return False
            End If
        Next
    Next
    Return True
End Function


Ou img1 est le clipboard clipboard.getimage()
Et img2 = new bipmap("smile.png")
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Ouille.
Tu fais-là tout ce que j'éviterais personnellement de faire (le presse-papier, la double boucle, etc ...). Lourd, tout cela.
Une idée ? ===>>
utiliser la couleur située très exactement au centre de l'image (de ton émoticône).L
Attribuer une couleur imperceptiblement différente. Par exemple : aucune différence à l'oeil nu entre RGB(0, 0,0) et RGB(1,0,0) ou RGB(0,0,1). L' "écart" peut être assez supérieur = 1 pour n'être pas "perçu" autrement que par analyse informatique du pixel.
Tu devines le reste : une simple collection (ou autre) permettant d'associer un texte à chaque couleur.
A toi de jouer sur ces bases, si tu tiens à faire cela.

Il est bien évidemment clair que les émoticônes utilisées devront avoir été dessinés (ou transformés... en leur centre) par toi.

Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016

Ok pour changer la couleur au centre des émotions pour gagner 1seconde de traitement mais après...

J'éviterais le presse papier comment ?
Car pour "prendre" une ligne choisit par l'utilisateur dans la RTB et la mettre dans la textbox faut bien comme un presse papier ?

Ensuite pour supprimer l'image de la ligne copier et mettre du texte à la place on fait comment ?

Modifier directement le code RTF ?
Messages postés
16
Date d'inscription
mardi 10 mars 2015
Statut
Membre
Dernière intervention
23 janvier 2016

Je précise que le logiciel enregistré chaque nouvelle ligne dans un fichier type txt