Afficher des images TINY
2 participants
GFA :: Programmation :: Graphismes
Page 1 sur 1
Afficher des images TINY
Afficher des images TINY
2 sources retrouvées dans mes archives.
[Vous devez être inscrit et connecté pour voir ce lien] :
- Code:
' ***************************************************************
' * *
' * VISUALISATION D'IMAGES AU FORMAT TINY V-1 *
' * *
' * PAONE jean francois *
' * OCTOBRE 87 *
' ***************************************************************
'
' --------------------------------------programme principal
HIDEM
DO
CLS
' INPUT " quel fichier TNY voulez-vous afficher ";fic$
FILESELECT "A:*.TNY","",fic$
EXIT IF fic$=""
@affich_tny(fic$+".tny")
LOOP
SHOWM
EDIT
'
'
PROCEDURE affich_tny(fic$)
'
' ------------------------------------dimensionnement tableaux
DIM bloc1%(100,100)
DIM bloc2%(100,100)
'
' ------------------------------------test de l'existence du fichier.tny
IF EXIST(fic$)=FALSE
ALERT 3,"| FICHIER| INTROUVABLE",1,"RETURN",dummy%
GOTO fin
ENDIF
'
' ------------------------------------sauvegarde des parametres de l'ecran
res_ecran%=XBIOS(4)
adr_ecran%=XBIOS(3)
'
' ------------------------------------sauvegarde de la palette
pal$=""
FOR i%=0 TO 15
pal$=pal$+CHR$(PEEK(&HFFFF8240+i%))
NEXT i%
'
' ------------------------------------preparation de la lecture du fichier
OPEN "i",#1,fic$
'
' ------------------------------------lecture de la resolution de l'image
res_fic%=INP(#1)
IF res_fic%>2
FOR i%=1 TO 4
a%=INP(#1)
NEXT i%
ENDIF
' ------------------------------------lecture de la palette de l'image
pal_fic$=""
FOR i%=1 TO 32
pal_fic$=pal_fic$+CHR$(INP(#1))
NEXT i%
'
' ------------------------------------lecture longueur bloc donnees ø1
lg1%=INP(#1)*256+INP(#1)
'
' ------------------------------------lecture longueur bloc donnees ø2
lg2%=INP(#1)*256+INP(#1)
'
' ------------------------------------lecture du bloc de donnees ø1
adr_bloc1%=VARPTR(bloc1%(0,0))
BGET #1,adr_bloc1%,lg1%
'
' ------------------------------------lecture du bloc de donnees ø2
adr_bloc2%=VARPTR(bloc2%(0,0))
BGET #1,adr_bloc2%,2*lg2%
'
' ------------------------------------verification du format tny
IF lg2%*2+lg1%+37-4*(res_fic%>2)<>LOF(#1)
ALERT 3,"| LE FICHIER N'EST PAS AU| FORMAT TINY",1,"RETURN",dummy%
GOTO fin
ENDIF
CLOSE #1
'
' -------------------------------------maj de la palette et de la resolution
IF res_fic%>2
SUB res_fic%,3
ENDIF
'
VOID XBIOS(6,L:VARPTR(pal_fic$))
VOID XBIOS(5,L:-1,L:-1,res_fic%)
'
' *************************************************************************
' * debut de l'affichage de l'image TNY *
' *************************************************************************
'
' -------------------------------------initialisation des variables
d0%=0
d3%=0
a2%=adr_bloc1%
a3%=adr_ecran%
d2%=adr_bloc2%
'
' -------------------------------------calcul des parametres de la trame
WHILE d3%<>lg1%
'
d1%=PEEK(a2%+d3%)
IF d1%>1
INC d3%
IF d1%>127
d1%=d1%-256
ENDIF
ELSE
a0%=a2%+d3%+1
z%=PEEK(a0%)*256+PEEK(a0%+1)
ADD d3%,3
IF d1%=1
d1%=-z%
ELSE
d1%=z%
ENDIF
ENDIF
'
' -----------------------------------affichage de la trame
IF d1%>=0
REPEAT
DPOKE (a3%+d0%),DPEEK(d2%)
@suite
DEC d1%
UNTIL d1%=0
ADD d2%,2
ELSE
REPEAT
DPOKE (a3%+d0%),DPEEK(d2%)
ADD d2%,2
@suite
INC d1%
UNTIL d1%=0
ENDIF
'
WEND
'
' *************************************************************************
' * fin de l'affichage de l'image TNY *
' *************************************************************************
'
' -------------------------------------attente de la pression d'une touche
REPEAT
UNTIL MOUSEK<>0
'
' -------------------------------------restauration des parametres de l'ecran
VOID XBIOS(5,L:-1,L:-1,res_ecran%)
VOID XBIOS(6,L:VARPTR(pal$))
'
' -------------------------------------fin de la procedure AFFICH_TNY
fin:
ERASE bloc1%()
ERASE bloc2%()
RETURN
'
'
PROCEDURE suite
ADD d0%,&HA0
IF d0%>=&H7D00
SUB d0%,&H7CF8
IF d0%>=&HA0
SUB d0%,&H9E
ENDIF
ENDIF
RETURN
[Vous devez être inscrit et connecté pour voir ce lien] :
- Code:
' ***************************************************************
' * *
' * VISUALISATION D'IMAGES AU FORMAT TINY V-2 *
' * *
' * PAONE jean francois *
' * OCTOBRE 87 *
' ***************************************************************
'
' --------------------------------------sauvegarde de la palette + resolution
pal$=""
FOR i%=0 TO 15
pal$=pal$+CHR$(PEEK(&HFFFF8240+i%))
NEXT i%
'
res_ecran%=XBIOS(4)
'
HIDEM
'
' --------------------------------------programme principal
DO
' INPUT " quel fichier TNY ";fic$
FILESELECT "A:*.TNY","",fic$
EXIT IF fic$=""
@affich_tny(fic$+".tny")
LOOP
'
' --------------------------------------restauration des parametres de l'ecran
VOID XBIOS(5,L:-1,L:-1,res_ecran%)
' VOID XBIOS(6,L:VARPTR(pal$))
EDIT
'
'
PROCEDURE affich_tny(fic$)
'
' ------------------------------------dimensionnement tableaux
DIM bloc1%(100,100)
DIM bloc2%(100,100)
ecr_dup$=STRING$(32000," ")
'
' ------------------------------------test de l'existence du fichier.tny
IF EXIST(fic$)=FALSE
ALERT 3,"| FICHIER| INTROUVABLE",1,"RETURN",dummy%
GOTO fin
ENDIF
'
' ------------------------------------preparation de la lecture du fichier
OPEN "i",#1,fic$
'
' ------------------------------------lecture de la resolution de l'image
res_fic%=INP(#1)
IF res_fic%>2
FOR i%=1 TO 4
a%=INP(#1)
NEXT i%
ENDIF
' ------------------------------------lecture de la palette de l'image
pal_fic$=""
FOR i%=1 TO 32
pal_fic$=pal_fic$+CHR$(INP(#1))
NEXT i%
'
' ------------------------------------lecture longueur bloc donnees ø1
lg1%=INP(#1)*256+INP(#1)
'
' ------------------------------------lecture longueur bloc donnees ø2
lg2%=INP(#1)*256+INP(#1)
'
' ------------------------------------lecture du bloc de donnees ø1
adr_bloc1%=VARPTR(bloc1%(0,0))
BGET #1,adr_bloc1%,lg1%
'
' ------------------------------------lecture du bloc de donnees ø2
adr_bloc2%=VARPTR(bloc2%(0,0))
BGET #1,adr_bloc2%,2*lg2%
'
' ------------------------------------verification du format tny
IF lg2%*2+lg1%+37-4*(res_fic%>2)<>LOF(#1)
ALERT 3,"| LE FICHIER N'EST PAS AU| FORMAT TINY",1,"RETURN",dummy%
GOTO fin
ENDIF
'
CLOSE #1
'
IF res_fic%>2
SUB res_fic%,3
ENDIF
'
'
' *************************************************************************
' * debut du traitement de l'image TNY *
' *************************************************************************
'
' --------------------------initialisation des variables
d0%=0
d3%=0
a2%=adr_bloc1%
a3%=VARPTR(ecr_dup$)
d2%=adr_bloc2%
'
' --------------------------calcul des parametres de la trame
WHILE d3%<>lg1%
'
d1%=PEEK(a2%+d3%)
IF d1%>1
INC d3%
IF d1%>127
d1%=d1%-256
ENDIF
ELSE
a0%=a2%+d3%+1
z%=PEEK(a0%)*256+PEEK(a0%+1)
ADD d3%,3
IF d1%=1
d1%=-z%
ELSE
d1%=z%
ENDIF
ENDIF
'
' ------------------------affichage de la trame
IF d1%>=0
REPEAT
DPOKE (a3%+d0%),DPEEK(d2%)
@suite
DEC d1%
UNTIL d1%=0
ADD d2%,2
ELSE
REPEAT
DPOKE (a3%+d0%),DPEEK(d2%)
ADD d2%,2
@suite
INC d1%
UNTIL d1%=0
ENDIF
'
WEND
'
' *************************************************************************
' * fin du traitement de l'image TNY *
' *************************************************************************
'
' ------------------------affichage de l'image
VOID XBIOS(6,L:VARPTR(pal_fic$))
VOID XBIOS(5,L:-1,L:-1,res_fic%)
BMOVE VARPTR(ecr_dup$),XBIOS(2),32000
'
' ------------------------attente de la pression d'une touche
REPEAT
UNTIL MOUSEK<>0
'
' ------------------------fin de la procedure AFFICH_TNY
fin:
ERASE bloc1%()
ERASE bloc2%()
'
RETURN
'
'
PROCEDURE suite
ADD d0%,&HA0
IF d0%>=&H7D00
SUB d0%,&H7CF8
IF d0%>=&HA0
SUB d0%,&H9E
ENDIF
ENDIF
RETURN
[Vous devez être inscrit et connecté pour voir ce lien]
Dernière édition par Shadow272 le Sam 21 Nov - 15:43, édité 1 fois
Re: Afficher des images TINY
C' est quoi le format TINY ?
Shaoth- Messages : 64
Date d'inscription : 28/09/2020
Age : 54
Localisation : Courbevoie
Re: Afficher des images TINY
C'est un format compressé, le PRG permet de compresser des PIx dans ce format.
Sujets similaires
» Afficher une PI1 en 16 couleurs 640x440 VGA
» Afficher/écrire une image NEOCHROME
» Afficher une image DEGAS ELITE (PIx)
» Images ATARI
» Liens des images
» Afficher/écrire une image NEOCHROME
» Afficher une image DEGAS ELITE (PIx)
» Images ATARI
» Liens des images
GFA :: Programmation :: Graphismes
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum