Page 1 of 3

Image -> Prgm

Unread postPosted: 07 Feb 2006, 15:05
by tama
Est-ce que quelqu'un connait un programme pour convertir une image en programme ?
Parce que j'ai essayé mais j'y arrive pas en basic
et je connais pas l'assembleur...

Re: Image -> Prgm

Unread postPosted: 07 Feb 2006, 19:01
by tama
ba oui tu crée une image et ça te le convertit en programme
ça peut être utile pour remplacer les rclPic comme ça on peut en mettre plus de 10 des images

Re: Image -> Prgm

Unread postPosted: 07 Feb 2006, 19:07
by M@D_Doc
c faisable en ASM mais me demande pas comment

Re: Image -> Prgm

Unread postPosted: 11 Feb 2006, 14:45
by MCMic
en basic ça doit être fesable mais lent
en gros tu fais une boucle avec un pixel test balayant l'écran et stockant dans une matrice.
puis un autre prgm qui interprète la matrice et réstitue l'image.
après pour que ça sorte directement des PxlON il faut faire ça en ASM

transformeur:
Code: Select all
:(62,94- dim[A]
:for(A,1,62)
:for(B,1,94)
:pxl test(A,B-[A](A,B)
:End
:End
interpréteur:
Code: Select all
:for(A,1,62)
:for(B,1,94)
:if [A](A,B):PxlON(A,B)
:End
:End


en gros ça doit ressembler à ça.
après je suis pas sur de A et B il faut peut-être inverser

Re: Image -> Prgm

Unread postPosted: 11 Feb 2006, 16:53
by tama
1.une matrice de 62x94 c'est beaucoup trop gros pour la RAM
2.C'est beaucoup trop lent

Re: Image -> Prgm

Unread postPosted: 11 Feb 2006, 17:12
by MCMic
tamaboss wrote:1.une matrice de 62x94 c'est beaucoup trop gros pour la RAM
2.C'est beaucoup trop lent
jamais content, hein??

nan mais je pense que le mieux est un truc genre:

Code: Select all
:1-C:1-dimL1
:for(A,1,62)
:for(B,1,94)
:if pxl test(A,B):then
:A-L1(C)
:B-L2(C)
:C+1-C
:C-dimL1
:End
:End
:End

Code: Select all
:for(A,1,dimL1)
:PxlON(L1(A),L2(A))
:End


ça te vas tj pas?

Re: Image -> Prgm

Unread postPosted: 11 Feb 2006, 17:24
by tama
ton code est OK mais le problème c'est que c'est beaucoup trop lent
Ca marche pour 5 lignes au mieux...

Re: Image -> Prgm

Unread postPosted: 11 Feb 2006, 22:19
by MCMic
tamaboss wrote:ton code est OK mais le problème c'est que c'est beaucoup trop lent
Ca marche pour 5 lignes au mieux...
tu veux que ce soit rapide à analyser l'écran actuel ou à le restituer??ya surement moyen d'optimiser pour que ça restitue plus rapidement en utilisant des lignes à la place des PxlON.

Re: Image -> Prgm

Unread postPosted: 12 Feb 2006, 07:22
by M@D_Doc
J'y ais déjà beaucoup réfléchis, et je pense avoir touver des méthodes :
1) Entrer tout une ligne dans 1 chiffres, avec chaque puissance correspondant à un pixel....On aurait tout l'écran en 62 ou 94 chiffres...
Non testé
2)Là, c'est plus compliqué. En fait, Ca regarde l'état du premier pixel, puis pour combien de pixels il est valables, puis sa recommence ...ex :
L1(0,10,1,5,0,1,1,17,0,200.......
Bref, le 0 indique un pixel éteint, et valable pour 10 pixels (en largeur)
Je n'ai pas testé, mais ça devrait marcher....

Re: Image -> Prgm

Unread postPosted: 12 Feb 2006, 12:10
by MCMic
M@D_Doc wrote:J'y ais déjà beaucoup réfléchis, et je pense avoir touver des méthodes :
1) Entrer tout une ligne dans 1 chiffres, avec chaque puissance correspondant à un pixel....On aurait tout l'écran en 62 ou 94 chiffres...
Non testé
2)Là, c'est plus compliqué. En fait, Ca regarde l'état du premier pixel, puis pour combien de pixels il est valables, puis sa recommence ...ex :
L1(0,10,1,5,0,1,1,17,0,200.......
Bref, le 0 indique un pixel éteint, et valable pour 10 pixels (en largeur)
Je n'ai pas testé, mais ça devrait marcher....
ouais pour la 2 je pensais à un truc du style.
mais juste en remplacant le "restitueur"
Code: Select all
:1B
:for(A,1,dimL1)
:if L1(A)=L1(A+1)+1:then
:B+1-B
:Else
:Line(L1(A-B),L2(A-B),L1(A),L2(A)
:1B
:End
:End

là encore, non testé, et il faudrait plus bosser dessus, ça macherai pas tel quel. :#delire#: