GFA
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

Afficher des images TINY

2 participants

Aller en bas

Afficher des images TINY Empty Afficher des images TINY

Message par Shadow272 Sam 21 Nov - 11:56

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
Shadow272
Shadow272
Admin

Messages : 328
Date d'inscription : 28/12/2017
Age : 65
Localisation : Hainaut Belgique

http://toutatari.blog4ever.xyz/

Revenir en haut Aller en bas

Afficher des images TINY Empty Re: Afficher des images TINY

Message par Shaoth Sam 21 Nov - 14:02

C' est quoi le format TINY ?
Shaoth
Shaoth

Messages : 64
Date d'inscription : 28/09/2020
Age : 54
Localisation : Courbevoie

Revenir en haut Aller en bas

Afficher des images TINY Empty Re: Afficher des images TINY

Message par Shadow272 Sam 21 Nov - 14:27

C'est un format compressé, le PRG permet de compresser des PIx dans ce format.
Shadow272
Shadow272
Admin

Messages : 328
Date d'inscription : 28/12/2017
Age : 65
Localisation : Hainaut Belgique

http://toutatari.blog4ever.xyz/

Revenir en haut Aller en bas

Afficher des images TINY Empty Re: Afficher des images TINY

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum