Tramage
3 participants
GFA :: Programmation :: Graphismes
Page 1 sur 1
Tramage
J’avais ce LST dans une archive depuis un certain temps… conversion image base en haute résolution
Très Intéressant pour le tramage effectué. - Je vais m’en servir pour faire une routine assembleur -
Non compilé c’est très lent, pas optimisé, et bug vers la fin…
J’ai rajouté des lignes que j’ai désactivées, c’était pour essayer de comprendre ou cela boguait. Mais je laisse cela aux utilisateurs du GFA.
Très Intéressant pour le tramage effectué. - Je vais m’en servir pour faire une routine assembleur -
Non compilé c’est très lent, pas optimisé, et bug vers la fin…
J’ai rajouté des lignes que j’ai désactivées, c’était pour essayer de comprendre ou cela boguait. Mais je laisse cela aux utilisateurs du GFA.
- Code:
' The Amazing Cracking Conspiracy Proudly Presents:
' Low to High Converter v2.2, released on Sunday, August 17th, 1986
'
' Rewritten for ST NEWS Volume 1, Issue 4
'
' Original Concept by Sven Krüppel, 1986 by Level 16
' GfA Basic version 1986 by The Amazing Cracking Conspiracy
'
' Main program
'
begin:
GOSUB screen
IF b=2 THEN
GOTO mouson
ENDIF
DIM w(80)
ALERT 3,"Please insert|Source Disk|and select|Picture",1,"OK",b
FILESELECT "\*.*","",l$
IF l$="" THEN
GOTO mouson
ENDIF
ALERT 3,"Please enter|Target name",1,"OK",b
FILESELECT "\*.PI3","",s$
'''PRINT "laad"
GOSUB laad
'''PRINT "convert"
GOSUB convert
'''PRINT "weg"
GOSUB weg
GOTO mouseon
OUT 2,7
a=INP(2)
IF INP(2)=255 THEN
GOTO mouson
ENDIF
GOTO begin
'
' End of Main program
'
' Loading the picture
'
PROCEDURE laad
sm=491520
BLOAD l$,sm+32
FOR i=sm TO sm+158
POKE i,0
NEXT i
RETURN
'
' Saving the picture
'
PROCEDURE weg
''''BSAVE "m:\aa.pi3",sm,32034
RESTORE
FOR q=0 TO 33
READ z
POKE (sm-34)+q,z
NEXT q
BSAVE s$,sm-34,32034
RETURN
'
' The actual Conversion routine
'
PROCEDURE convert
FOR y=sm+160 TO sm+31840 STEP 160
''''PRINT AT(10,10),y;" " ! Pour le "AT" j'ai du regarder la doc GFa - j'suis nul ! -
FOR x=0 TO 79
w(x)=DPEEK(y+x*2)
IF SGN(w(x))=-1 THEN
w(x)=65536+w(x)
ENDIF
NEXT x
x1=0
FOR x=0 TO 76 STEP 4
k=32768
j=1
label1:
h1=32768
h2=h1
p1=0
p2=0
label2:
IF w(x)>=k THEN
p1=p1+h1
w(x)=w(x)-k
ENDIF
h1=h1/2
IF w(x+1)>=k THEN
p1=p1+h1
w(x+1)=w(x+1)-k
ENDIF
h1=h1/2
IF w(x+2)>=k THEN
p2=p2+h2
w(x+2)=w(x+2)-k
ENDIF
h2=h2/2
IF w(x+3)>=k THEN
p2=p2+h2
w(x+3)=w(x+3)-k
ENDIF
h2=h2/2
k=k/2
IF j=8 THEN
DPOKE y+x1*2,p1
DPOKE y+x1*2+80,p2
j=1
x1=x1+1
GOTO label1
ENDIF
j=j+1
IF k>=1 THEN
GOTO label2
ENDIF
NEXT x
NEXT y
RETURN
'
' End routine
'
mouson:
CLS
SPOKE 16745024,-1
END
'
' Data for first 34 bytes of monochrome inverted DEGAS picture
'
DATA 0,2,0,0,7,&h77,0,&h70,0,0,7,&h77
DATA 7,0,0,&h70,7,&h70,0,7,7,7,0,&h77,5,&h55
DATA 0,&h33,7,&h33,3,&h73,7,&h73
'
' Screen initialization & Text printing
'
PROCEDURE screen
CLS
SPOKE 16745024,0
DEFTEXT ,16,500,6
TEXT 10,398,"THE AMAZING CRACKING CONSPIRACY PRESENTS"
DEFTEXT ,1,0,26
TEXT 50,26,"LOW-HIGH CONVERTER VERSION 2.2"
DEFTEXT ,0,0,6
TEXT 50,389,"This program converts a neo-format picture to High Res Degas format"
RETURN
Dernière édition par rockyone le Mer 28 Nov - 11:38, édité 1 fois
rockyone- Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives
Re: Tramage
Salut Rocky et merci pour Tamage !
(Du coup c'est Mamage maintenant :-)
Effectivement il faut surement la nettoyer un peu avant le passage en ASM car les gotos dans la boucle, c'est bof.
(Du coup c'est Mamage maintenant :-)
Effectivement il faut surement la nettoyer un peu avant le passage en ASM car les gotos dans la boucle, c'est bof.
Re: Tramage
J'ai manqué d'R, me revoilà !Atlantis a écrit:Salut Rocky et merci pour Tamage !
(Du coup c'est Mamage maintenant :-)
Effectivement il faut surement la nettoyer un peu avant le passage en ASM car les gotos dans la boucle, c'est bof.
Les gotos ce n'est pas le pire, "h2" est inutile, les divisions "/", la sauvegarde des Words à "sm+160" ...
Donc, j'ai fait rapidement un test en Omikron avant de continuer. - Avec les gotos -
La conversion des images n'est pas trop mauvaise, mais pas du niveau de PicSwich7.
[Vous devez être inscrit et connecté pour voir ce lien],[Vous devez être inscrit et connecté pour voir ce lien],[Vous devez être inscrit et connecté pour voir ce lien]
rockyone- Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives
Re: Tramage
Pour obtenir un tel résultat, penses tu que PicSwich utilise une table de tramage dans son algorithme ?
rockyone- Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives
Re: Tramage
Hummm, difficile à dire comme ça.
Mais j'ai l'impression qu'il y a un bug dans le .lst, une histoire de valeur signée ? (Je ne sais pas trop)
Mais quelque-chose cloche.
Tu t’intéresses à cette conversion pour une raison précise ?
Mais j'ai l'impression qu'il y a un bug dans le .lst, une histoire de valeur signée ? (Je ne sais pas trop)
Mais quelque-chose cloche.
Tu t’intéresses à cette conversion pour une raison précise ?
Re: Tramage
Le Lst a bien un bug . Comme je voulais voir le résultat sur plusieurs images, je l’ai refait en Omikron.
Si tu veux tester la conversion, je le mais ici provisoirement.. [Vous devez être inscrit et connecté pour voir ce lien]
Fonctionne en haute résolution. La conversion est affichée sur l’écran. (Il n’y a pas de sauvegarde)
En fait, je commence à regarder comment faire du tramage lors de la conversion de format d’image.
Et ce n’est pas évident d’obtenir un bon résultat !
Si tu veux tester la conversion, je le mais ici provisoirement.. [Vous devez être inscrit et connecté pour voir ce lien]
Fonctionne en haute résolution. La conversion est affichée sur l’écran. (Il n’y a pas de sauvegarde)
En fait, je commence à regarder comment faire du tramage lors de la conversion de format d’image.
Et ce n’est pas évident d’obtenir un bon résultat !
rockyone- Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives
Re: Tramage
Plus le tableau W(80) inutile, un bouclage en trop....Atlantis a écrit:Salut Rocky et merci pour Tamage !
(Du coup c'est Mamage maintenant :-)
Effectivement il faut surement la nettoyer un peu avant le passage en ASM car les gotos dans la boucle, c'est bof.
Donc après plusieurs mois d'inactivité... j'ai quand même fait la routine en ASM, puis en basic Omikron mais sans améliorer le tramage.
C'est beaucoup plus rapide dans les deux cas.
- Code:
IPL 4:Ti!= TIMER
A1%L=Ecran%L' - lpeek($44e) -
A0%L=Buf_Pi1%L+34
A6%L=A0%L+32000
-All_Line
A5%L=A0%L+160
-Convert_Line
D0%L= WPEEK(A0%L) AND $FFFF
D1%L= WPEEK(A0%L+2) AND $FFFF
D2%L= WPEEK(A0%L+4) AND $FFFF
D3%L= WPEEK(A0%L+6) AND $FFFF
A0%L=A0%L+8
D4%L=$8000
-Label1:D5%L=0:D6%L=0:D7%=15
FOR T%=0 TO 7
IF D0%L>=D4%L THEN BIT (D7%,D5%L)=-1:D0%L=D0%L-D4%L ENDIF
IF D2%L>=D4%L THEN BIT (D7%,D6%L)=-1:D2%L=D2%L-D4%L ENDIF
D7%=D7%-1' 14.....0
IF D1%L>=D4%L THEN BIT (D7%,D5%L)=-1:D1%L=D1%L-D4%L ENDIF
IF D3%L>=D4%L THEN BIT (D7%,D6%L)=-1:D3%L=D3%L-D4%L ENDIF
D4%L=D4%L SHR 1
D7%=D7%-1' 13.....-1
NEXT T%
WPOKE A1%L,D5%L: WPOKE A2%L,D6%L:A1%L=A1%L+2:A2%L=A2%L+2
IF D4%L>0 THEN GOTO Label1 ENDIF' d4%=$80
IF A0%L<A5%L THEN GOTO Convert_Line ENDIF' fin de la ligne ?
A1%L=A2%L:A2%L=A2%L+80
IF A0%L<A6%L THEN GOTO All_Line ENDIF' fin de l'image ?
T2!=( TIMER -Ti!)/200
Dans le PRG, La palette de couleur est parfois inversé, mais c'est un autre problème.
Tous les fichiers dans ce dossier: [Vous devez être inscrit et connecté pour voir ce lien]
Je recherche d'autres exemples de conversion d'image avec tramage, quelque soit le langage.
rockyone- Messages : 68
Date d'inscription : 14/01/2018
Localisation : Hauterives
GFA :: Programmation :: Graphismes
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum