#!/bin/csh ####################################################################################################################################### # # # C O N S T R U C T I O N D ' U N C A R R E L A G E P A R # # D U P L I C A T I O N D ' U N M O R C E A U D ' I M A G E : # # # # # # Utilisation : # # # # $xci/carrelage.01$Z <imageA> <imageR> <NbandeV> <NbandeH> [<affine>] # # # # # # Author of '$xci/carrelage.01$Z' : # # # # Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### set imageA=$1 set imageR=$2 set NbandeV=$3 set NbandeH=$4 set affine=$5 setArgum NbandeV 1 # Nombre de bandes Verticales a priori... # setArgum NbandeH 1 # Nombre de bandes Horizontales a priori... # setArgum affine FAUX # A priori, pas de transformation affine... # FileTmpB nomT1 FileTmpB nomT2 # Creation de noms temporaires... # if ("$affine" == "FAUX") then $xci/acces$X A=$imageA R=$nomT2 $formatI # Cas ou il n'y a pas de transformation affine... # else $xci/affine.01$X A=$imageA \ mxx=`$xcg/scale$X x=1 a=$NbandeV` \ mxy=0 myx=0 \ myy=`$xcg/scale$X x=1 a=$NbandeH` \ TxA=0 TyA=0 TxR=0 TyR=0 \ R=$nomT2 $formatI # Cas ou il y a une transformation affine... # endif @ NbandeV = $NbandeV + 1 @ NbandeH = $NbandeH + 1 $xci/init$X niveau=$NOIR R=$nomT1 $formatI # Initialisation de l'image Resultat. # set LtranslationH=`$xci/valeurs_inte$X premiere=1 derniere=$NbandeV vD=0.0 vA=1.0 cubique=FAUX signe="$K_VIDE"` # Definition de la liste des translations Horizontales necessaires a obtenir les bandes # # Verticales desirees... # foreach translationH ($LtranslationH) if ($translationH != $LtranslationH[$#LtranslationH]) then $xci/move$X fond=VRAI F=$nomT1 A=$nomT2 xR=$translationH R=$nomT1 $formatI # Decalage Horizontal iteratif pour creer les bandes Verticales (sauf pour la derniere # # qui est ineffective...). # else endif end $xci/init$X niveau=$NOIR R=$imageR $formatI # Initialisation de l'image Resultat... # set LtranslationV=`$xci/valeurs_inte$X premiere=1 derniere=$NbandeH vD=0.0 vA=1.0 cubique=FAUX signe="$K_VIDE"` # Definition de la liste des translations Verticales necessaires a obtenir les bandes # # Horizontales desirees... # foreach translationV ($LtranslationV) if ($translationV != $LtranslationV[$#LtranslationV]) then $xci/move$X fond=VRAI F=$imageR A=$nomT1 yR=$translationV R=$imageR $formatI # Decalage Vertical iteratif pour creer les bandes Horizontales (sauf pour la derniere # # qui est ineffective...). # else endif end FileTmpE nomT1 FileTmpE nomT2 # Puis destruction des images temporaires... #