"Trulouloulou, bombombom, Trulouloulou, bombombom, Ici LYON, la plaie du forum parle aux programmeurs, les bananes sont cuites, je répete, les bananes sont cuites, Trulouloulou, bombombom,Trulouloulou, bombombom"

Toujours dans mon histoire de réduction de clef par une base.
Je me suis lancé dans un challenge, et cette fois ça risque de me couter gros

http://www.purebasic.fr/french/viewtopi ... 8956#78956
En effet, il y a une banane dédicacée en jeu, et je ne peux me permettre de perdre, je n'en ai pas les "moyens""

Donc voila les choses serieuses et l'enjeu annoncé, je vais vous exposer mon immense probleme :
Je voudrais trouver un code qui prend pixel à pixel une image qui en fait sera un caractere, pour la scanner et me faire un fichier de 0 et 1, ou encore mieux de 0 et la couleur du pixel et sa position dans la matrice de l'image.
http://purebasic.myftp.org/files/413/A.bmp
http://purebasic.myftp.org/files/413/A_blanc.bmp
http://purebasic.myftp.org/files/413/A.png
Ce fichier servira à recréer ce caractere dans un gadget image ou autre
J'ai choisi volontairement un fond foncé, car le code de MISHA a la facheuse tendance de ne pas trop reconnaitre les bords, et si je met mon A sur un fond blanc, bah quand la fenetre est skinée, on voit les bords blancs, quand on déplace le skin sur un fond noir

J'ai mis un A avec un fond blanc, ce sera peut etre plus facile pour un autre code.

J'ai mis aussi le A.png qu'il faut enregistrer sous c:\ pour le code qui est généré par le générateur de misha et que voici (Sortie par escape):
Code : Tout sélectionner
UsePNGImageDecoder()
Procedure OpenMaskedWindow_A(WinID, x, y, Title.s, imID)
HwndA = OpenWindow(winID, GetSystemMetrics_(#SM_CXSCREEN), y, 56, 54, Title, #WS_POPUP)
Memhandle = GlobalAlloc_(#GMEM_MOVEABLE,824)
*Mem = GlobalLock_(Memhandle)
UnpackMemory(?A_Mask, *Mem)
Region = ExtCreateRegion_(0,816, *Mem)
SetWindowRgn_(HwndA, Region, #True)
Pic = CatchImage(imID,?A)
Brush = CreatePatternBrush_(Pic)
SetClassLong_(HwndA, #GCL_HBRBACKGROUND, Brush)
ResizeWindow(WinID, x, y, #PB_Ignore, #PB_Ignore)
GlobalUnlock_(Memhandle)
GlobalFree_(Memhandle)
DeleteObject_(Region)
ProcedureReturn HwndA
DataSection
A:
;***********
IncludeBinary "c:\A.png"
A_Mask:
;***********
Data.l $330434A ,$18820000,$50110000,$46C2000 ,$83424204,$62405290,$3A693008,$A28A46B9,$82208420,$4E024A65
Data.l $2C78428B,$44082A12,$C0454C30,$7A5251A9,$85204494,$5389E9C0,$3AC29C04,$74B34925,$526151A ,$8540441
Data.l $CC1194F3,$28C489D2,$70214DA5,$4536149A,$F3084AB0,$CC08C194,$994F5489,$4A9C936C,$29A6B085,$F6107582
Data.l $A518ACE9,$5033A953,$42A6229A,$6088A818,$540C4E93,$3085AB12,$9D361953,$21526C7 ,$6E29A1C7,$27503A73
Data.l $4EA130A0,$5882B085,$6381A3C6,$42C79E51,$853E0AA1,$4558CB0 ,$4830948B,$A3A72C99,$A4AA4554,$558428F8
Data.l $E8F5849C,$A6502AA4,$AAD0F1E ,$82292381,$EA563A3D,$13A346A4,$946810AB,$610A9822,$35824EA6,$74A9B13A
Data.l $AD4E2936,$8A4D9842,$76108D60,$A3589D2A,$674EAB53,$332B2293,$C32AAB5B,$6B3E169C,$8510C75 ,$49307573
Data.l $C2118C11,$2000A550
EndDataSection
EndProcedure
OpenMaskedWindow_A(WinID, 100, 100, "A", imID)
Repeat : Evenement = WaitWindowEvent():Delay(1) :Until GetAsyncKeyState_(#VK_ESCAPE)

http://www.purebasic.fr/english/viewtop ... 8284#48284
En fait c'est grace et uniquement grace à ce code que vous avez le "plaisir" de me supporter tous les jours que dieux fait dans ce forum.
En effet c'est quand, j'ai vu ce que pouvais faire pure avec une fenetre que j'ai décidé d'opter pour ce language.
Pour ceux que j'enerve et qui voudrais se venger, j'ai l'adresse de MISHA

Alors je voudrais savoir si, je suis dans la bonne direction, si y'a beaucoup plus simple, ou si il existe un code déjà tout fait quelque part dans vos tiroir ou un lien.
Surtout ne dites rien à DJES, il doit pas savoir que vous m'aidez

En ce moment, il est un peu ronchon

Peut etre une indigestion de fruits exotique long et jaune

Je me fait du soucis pour son moral

Bref, Chhhuuu uuuut !!!c'est un secret entre vous et moi

Merci mille fois
Je vous remercie beaucoup de votre patience
