Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Scanner
Persalteas le 27/01/2010 à 17:03
J'aimerais reconstituer un programme que j'avais fait l'année dernière mais que je n'ais plus: le problème, c'est que je me souviens plus.
Le principe:
On dessine une image avec des fonctions ou les outils dessin de la calto, mais ensuite, pour la sauvegarder, on a que dix images et 764 de ram pour une image c'est beaucoup.
J'avais trouvé un système avec des pixel-test, la calto analysait chaque pixel un par un et enregistrait tout les coordonées dans une listeX et une liste Y.
Puis ces listes ça les retransformait en une matrice qui prenait moins de 600 de ram.
J'avais après un programme inverse qui retransformait la matrice en listes, les listes en image.
Si quelqu'un a quelque chose qui ressemble, je veux bien qu'il le publie.
ce programme me servait essentiellemnt a faire de la vidéo sur calto: au début de la vidéo, ça recrée les images, puis ça les mémorise avec les fonctions "SauveImage", et ça lance le film)sypotu le 27/01/2010 à 17:55
Alors la je sais pas comment tu as fait l'écran est de 95 pixels par 63.
Ca fait une matrice de 53 000 octes !!!!!!

Persalteas le 28/01/2010 à 19:59
c'étaitr pas une matrice d'une case par pixel avec des tas de cases qui servent à rien à chaque fois que le pixel est éteint.
Justement, c'est ça le problème, c'est que je me souviens plus!sypotu le 28/01/2010 à 21:21
ok tu avais une matrice a deux ligne, une coordonée x et une coordonée y et une colone par pixel allumé
dans ce cas tu peux allumer 33 pixels avec 600 octetsRézus le 29/01/2010 à 18:06
Bien vu,c'était surement ça,et dans ce cas c'est beaucoup plus simple,il suffit de scanner la matrice de gauche à droite avec un For( et de mettre un pxlOn( avec les coordonnées des points dans la matrice.
Et même système pour la transformer en listes sauf qu'on scan les deux lignes séparément.Rézus le 29/01/2010 à 19:00
Et voilà le travial,c'est une super idée !! (désolé pour ce double post)
prgmSCAN qui scan dans les listes Y et X ("l" c'est le petit "L".
Code
:EffEcr
:EFFListe lY
:EffListe lX
:1->dim(lY
:1->dim(lX
:0->C
:For(B,1,62
:For(A,1,94
:codetouch->K
:If pxl-Test(B,A)=1
:B->lY(2+C
:If pxl-Test(B,A)=1
:A->lX(2+C
:If pxl-Test(B,A)=1
:C+1->C
:Output(1,1,B
:Output(2,1,A
:If K=105
:Goto 1
:End
:End
:Lbl 1
:C->lY(1
J'ai mis les Output et le codetouch au cas où on ne voudrait pas scanner complétement l'image.Il suffit d'appuyer sur [entrer]
prgmSCAN2 qui reconstitue l'image à partir des listes.
Code
:EffDessin
:For(A,2,lY(1
:Pxl-Aff(lY(A),lX(A
:End
Tiens,quand j'aurais envie de programmer,j'essaierais peut-être de faire un prog de retouche image

sypotu le 29/01/2010 à 19:17
Si tu veux faire un film il peut être interessant de stocker les pixels qui doivent changer d'éta.Rézus le 29/01/2010 à 19:41
C'est à ça que je pensais ^^.Monstercrunch le 29/01/2010 à 21:59
Waa, un film sur ti, je demande à voir !Persalteas le 30/01/2010 à 18:04
Vous avez jamais vu de film sur calto ?
j'en avais fait des dizaines!
C'est sympa cette idée de programme mais une image c'est dans les 300 pixels alors...
Et la matrice, c'était pas ça non plus sinon aucun intérêt de transformer les listes en matrice...
Merci quand même, je vais essayer ça peut être utile pour des films en demi-écran.Rézus le 30/01/2010 à 19:52
C'est vrai que ça prend vite beaucoup de mémoire.Je sais pas comment tu faisais pour en avoir que pour 600 de ram je sais pas comment t'as fait.T'as carrément dû retrouver le système de sauvegarde d'images chapeau.Monstercrunch le 15/04/2010 à 15:44
C'est moi ou dans ton programme de scan tu as mit 4 fois le même If ? un then ne suffit pas ?Rézus le 15/04/2010 à 18:34
oui,parce que si j'avais mis un then le programme ralentirait,et si tu l'as essayé,tu comprendra que c'est pas possible qu'il devienne plus long que ce qu'il est déjà ^^AlexRider38 le 08/05/2010 à 14:37
salut
moi quand je veux reconstituer l'image ça me met "err dim" a cet ligne:
sur la parenthèse avant la virgule
merci de me répondre
sypotu le 13/05/2010 à 09:18
essaie ça :
Code
:EffDessin
:For(A,2,dim(lY
:Pxl-Aff(lY(A),lX(A
:End
AlexRider38 le 13/05/2010 à 09:33
Merci SypotuPersalteas le 04/07/2010 à 12:53
j'ai trouvé un système qui s'approche:
Il est capable de scanner et redonner une image si il n'y a pas plus de 7 pixels allumés par verticale.
Une image scannée prend 855 octets.
Code
Menu("....SCANNER.....","SCANNER",1,"AFFICHER",2
Lbl 1
EffEcr
Output(1,1,"SCAN EN COURS...
Output(4,9,"I%"
Output(4,9," "
94->dim(L1
For(K,1,94
1->C
0->D
For(A,1,62
pxl-test(A,K)->B
Output(4,6,K
If B
D+A(10^-(2C-1))->D
If B:C+1->C
End
D->L1(K)
End
EffEcr
Lbl 2
EffDessin
For(C,1,94
L1(C)->B
For(A,1,14,2
Pt-On(V,62-ent(100partDéc((B10^(A-2))
End
End
Ligne(Xmin,Ymax,Xmax,Ymax,0
Persalteas le 05/07/2010 à 16:02
le mieux: ce prog est parfait si on l'utilise en mode Horiz.
sinon on peut mettre deux lidtes au lieu d'une, ça double les possibilités (14 points par verticale), mais aussi la mémoire (2 fois 855). Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.