fichier DDS calcule taille

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

fichier DDS calcule taille

Message par bebou007 »

salut a tous voila j'aurais besoin de calculer la taille d'un fichier dds grace au info qui sont dans l'entete du fichier j'arrive a recuperer la largeur et hauteur le probleme c'est que suivant le dxt la taille pris et differente et j'arrive pas a trouver plus d'explication sur le format

j'en ai besoin car je connait le debut du fichier mais pas la fin dans un fichier archive merci pour votre aide
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: fichier DDS calcule taille

Message par Ar-S »

Aurais-tu un petit fichier DDS à nous soumettre pour faire d'éventuels tests ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: fichier DDS calcule taille

Message par bebou007 »

oui bien sur

http://bebou007.free.fr/image269-806131712-524416-.dds
http://bebou007.free.fr/image517-815919104-8320-.dds
http://bebou007.free.fr/image7-909312-11064-.dds

donc voila 3 images dds

le dernier chiffre entre -524416- correspond a la taille du ficheir en decimale le probleme c'est que la je la connais la taille j'aimerai pouvoir trouver met fichier dds sans connaitre la taille merci

en position 12 et 16 il y a la largeur et la hauteur en pixel
Dernière modification par bebou007 le mar. 16/mars/2010 13:16, modifié 1 fois.
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: fichier DDS calcule taille

Message par case »

avec filesize() ca marche pas ?
ImageImage
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: fichier DDS calcule taille

Message par bebou007 »

lol il faut lire mon post je cherche a trouver un fichier dans un autre fichier donc sa marche pas je vais avoir la taille de tous le fichier qui contient les autre fichier
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: fichier DDS calcule taille

Message par Ar-S »

En gros tu as une archive genre Zip avec des fichiers dds dedans et tu veux connaitre la taille d'un fichier spécifique ?

--edit--
Si c'est le cas je vois pas trop comment faire excepter d'extraire le fichier de l'archive..
j'ai essayé de l'ouvrir avec winHex, je ne vois pas d'info concernant la taille.

En réalité je suis pas sûr d'avoir compris ton problème.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: fichier DDS calcule taille

Message par bebou007 »

ben en fait c'est comme un zip si on veut mais pas compresser dedans il y a des tas de fichier et je peut trouver le debut du fichier dds car il commence pas DDS mais pour toruver la fin c'est une autre histoire

en fait selon le dxt utilier dans le dds la taille pris seras plus ou moins compresser

en fait j'arrive par fois a arriver a un calcule qui correspond bien a la taille du fichier mais c'est pas le cas pour tous les fichier certain dds il suffit de faire largeur*hauteur+128 octet de l'entête

certain c'est largeur*hauteur*3 voir fois 4 et certain si on fait juste largeur*hauteur sa dépasse de loin la taille du fichier qui et plu léger
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: fichier DDS calcule taille

Message par Ar-S »

J'ai trouve cette page qui devrait peut être te faire avancer.
http://fr.imageconverterplus.com/help-c ... rmats/dds/
Tu as le descriptif des dxt et autres
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: fichier DDS calcule taille

Message par bebou007 »

merci j'avais deja vue je vais voir du coter de la lib nvidia pour le dds peut etre qu'il me renvera la taille
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: fichier DDS calcule taille

Message par djes »

C'est plutôt là qu'il faut regarder : http://doc.51windows.net/Directx9_SDK/? ... format.htm
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: fichier DDS calcule taille

Message par bebou007 »

merci sa vas m'aider beaucoup
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: fichier DDS calcule taille

Message par Ar-S »

Tant mieux parce que là moi je cale, trop compliqué pour mon petit cerveau de piaf.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: fichier DDS calcule taille

Message par case »

bebou007 a écrit :lol il faut lire mon post je cherche a trouver un fichier dans un autre fichier donc sa marche pas je vais avoir la taille de tous le fichier qui contient les autre fichier
ha ok , j'avais pas fait gaffe a ce detail :)
Dernière modification par case le mer. 17/mars/2010 0:02, modifié 1 fois.
ImageImage
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: fichier DDS calcule taille

Message par case »

j'ai l'impression que c'est pas encore ca ,) bon courage pour la suite :p

Code : Tout sélectionner

file$="image269-806131712-524416-.dds"
InitSprite()
Structure header
  stru_size.l   ;taille de la structure (124)
  flags.l       ;Flags to indicate valid fields. Always include DDSD_CAPS, DDSD_PIXELFORMAT, DDSD_WIDTH, DDSD_HEIGHT.
  height.l      ;hauteur de l'image en pixel
  width.l       ;largeur de l'image en pixels
  size.l        ;longueur d'une ligne de pixel en octet si le fichier n'est pas compresse, du total de l'image si il est compresse
  depth.l       ;For volume textures, this is the depth of the volume. dwFlags should include DDSD_DEPTH in this case.
  mipmapcount.l ;For items with mipmap levels, this is the total number of levels in the mipmap chain of the main image. dwFlags should include DDSD_MIPMAPCOUNT in this case.
  reserved.l[11];reserved
  pixelformat.l ;pixelformat
  ddscaps.w     ;16-byte value that specifies the capabilities structure.
  reserved2.l[2];reserve
endstructure
blah.header
*mem=AllocateMemory(FileSize(file$))
rd=ReadFile(#PB_Any,file$)
ReadData(rd,*mem,MemorySize(*mem))
CloseFile(rd)
CopyMemory(*mem+4,@blah,SizeOf(blah))
nb=Len(Str(blah\size))
off=128
Global main=OpenWindow(#PB_Any,0,80,1024,1024,"test")                 
Global screen=OpenWindowedScreen(WindowID(main),0,0,1024,1024,0,0,0)
  x=0
  y=0
ClearScreen($202020)
StartDrawing(ScreenOutput())
  Repeat
  ;
  color1=PeekW(*mem+off):off+2
  color2=PeekW(*mem+off):off+2
  r1=((color1 & %1111100000000000) >>11)
  g1=((color1 & %0000011111100000) >>5)
  b1=(color1 & %0000000000011111)
  ;  
  r2=((color2 & %1111100000000000) >>11)
  g2=((color2 & %0000011111100000) >>5)
  b2=(color2 & %0000000000011111)
  pix_enc=PeekL(*mem+off):off+4
  mask_x=30
  For yy=0 To 3
    For xx=0 To 3        
      mask=%11<<mask_x
      Select (pix_enc & mask)>>mask_x
      Case 00
        rc=r1
        gc=g1
        bc=b1
      Case 01
        rc=r2
        gc=g2
        bc=b2      
      Case 10
        rc=((2*r1)+r2)/3
        gc=((2*g1)+g2)/3
        bc=((2*b1)+b2)/3
      Case 11
        rc=((2*r2)+r1)/3
        gc=((2*g2)+g1)/3
        bc=((2*b2)+b1)/3        
      EndSelect
      If x+xx<blah\width And y+yy<blah\height
        Plot(x+xx,y+yy,RGB(rc,gc,bc))
      EndIf
    Next
  Next
x+4
If x=blah\width
  x=0
  y+4
EndIf

Until off=blah\size
StopDrawing()
FlipBuffers()
Repeat
ev=WaitWindowEvent()
Until ev=#PB_Event_CloseWindow
Dernière modification par case le mer. 17/mars/2010 2:13, modifié 1 fois.
ImageImage
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: fichier DDS calcule taille

Message par bebou007 »

merci case pour ton aide sur le site il dise que les format compresser sont dxt1 dxt2 dxt3 dxt4 dxt5 je dds que j'ai choisi c'est un fichier dds dxt1 donc size devrais me donner la taille de l'image en fait je vien de voir que size me donner 8192 hauteur 128 largeur 128 par contre si j'ouvre avec photoshop le dds et bien j'ai 6 image en largeur et pas une de 128*128

si je fait 6*8192 +128 de l'entête j'obtient bien la taille du fichier mais comment sa se fait qu'il me met que 128 en largeur alors qu'il fait 768 en tous cas merci pour ton aide
Répondre