Lecture image targa (.tga)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 228 fois - Téléchargée 28 fois

Contenu du snippet

Ce snippet permet de lire et de dessiner (a l'aide de drawdot) l'image pixel par pixel.
C'est evidemment assez long (enfin tt depend de la taille de l'image) , mais l'interet est ailleurs :)
On peut ensuite convertir son image targa soit en bmp, soit en jpeg
ah oui, j'oubliai
Pour l'instant ça ne lit que les targa 24bits (les plus communes)
J'étendrai peut être les fonctionnalités si ça vous interresse

Source / Exemple :


alias tga {
  var %tga $+(",$$sfile($+($left($mircdir,1),:\*.tga),Selectionnez l'image à lire,&Selectionner),") 

  bread %tga 0 13 &signature
  if ($calc($bvar(&signature,1,1) + $bvar(&signature,2,1) + $bvar(&signature,9,1)) != 0)  { echo -a Ce fichier n'est pas une image TARGA valide | halt }

  bread %tga 16 1 &bpp
  if ($bvar(&bpp,1,1) != 24) { echo -a Cette image n'est pas codée en 24 bits/pixels | halt }

  bread %tga 12 16 &taille
  var %lx $bvar(&taille,1,1) , %ly $bvar(&taille,2,1) |  var %hx $bvar(&taille,3,1) , %hy $bvar(&taille,4,1)
  var %largeur $calc(256 * %ly + %lx)                 |  var %hauteur $calc(256 * %hy + %hx)

  bread %tga 18 $calc(%largeur * %hauteur * 3) &donnees

  window -CBk0pf +lt $+(@,$nopath(%tga)) -1 -1 %largeur %hauteur

  echo -a ---------------------------------------------------------
  echo -a Affichage de %tga en cours...
  var %ticks $ticks

  var %cpt 1 , %l 1
  while (%hauteur > 0) {
    if (%cpt != 1) { inc %cpt 3 }
    while (%l < %largeur) {
      var %pixel = $bvar(&donnees,%cpt,3)
      tokenize 32 %pixel
      drawdot -r $+(@,$nopath(%tga)) $rgb($3,$2,$1) 1 %l %hauteur 
      ; niveau de gris
      ;drawdot -r $+(@,$nopath(%tga)) $rgb($2,$2,$2) 1 %l %hauteur
      inc %cpt 3
      inc %l
    }

    var %l 1
    dec %hauteur
  }
  echo -a Affichage effectué en $calc($calc($ticks - %ticks) / 1000) sec
  echo -a ---------------------------------------------------------

  var %rep $input(Voulez-vous convertir cette image en bitmap (yes) en jpeg (no) ou ne rien faire (cancel) ?, vn,Conversion) 
  if (%rep == $yes) { drawsave $+(@,$nopath(%tga)) $replace(%tga,.tga,.bmp) | echo -a Image $replace(%tga,.tga,.bmp) crée ! }
  elseif (%rep == $no) { drawsave -q100 $+(@,$nopath(%tga)) $replace(%tga,.tga,.jpg) | echo -a Image $replace(%tga,.tga,.jpg) crée ! }
  else { halt }
}

Conclusion :


rien d'autre à dire !

A voir également

Ajouter un commentaire Commentaires
fjxokt
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
1
20 mars 2005 à 15:47
si tu va sur ce lien
http://www.texuma.net/forum/viewtopic.php?t=58
tu fais clic droit > enregistrer la cible sous et c'est bon
(l'image est sous la forme d'un lien)
sinon si vous n'avez pas d'images tga il vous suffi d'enregistrer avec un logiciel de retouche d'image (com gimp ou photoshop) votre image au format targa.
(http://www.tucows.com/preview/194967.html pr telecharger irfanview, c'est un freeware)
cs_KiNdErMaXi
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
20 mars 2005 à 15:42
A la place de la photo, une croix rouge s'affiche
donc impossibiliter de la voir et encore moins de l'enregistrer.
MaX_62
Messages postés
879
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
29 juin 2007

20 mars 2005 à 07:08
C'est mieux avec la photo pour tester :)
Bon boulot, je suis épaté :)

9/10
fjxokt
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
1
20 mars 2005 à 00:54
oups
c'est la qu'il faut aller pr enrgistrer l'image:

http://www.texuma.net/forum/viewtopic.php?t=58
fjxokt
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
1
19 mars 2005 à 22:32
Tenez
Aller sur : http://www.texuma.net/forum/viewtopic.php?t=356

et sur le lien du message du bas faite clic droit > enregistrer sous
Ensuite remplacez l'extension .jpg par .tga
Si vs n'avez pas de viewer capable de lire les targa, je vous conseille IrfanView
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.