source: trunk/SRC/ToBeReviewed/IMAGE/animgif.pro @ 114

Last change on this file since 114 was 114, checked in by smasson, 18 years ago

new compilation options (compile_opt idl2, strictarrsubs) in each routine

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.8 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4;+
5; NAME:animgif
6;
7; PURPOSE:construire une animation gif
8;
9; CATEGORY:pour faire des dessins animes
10;
11; CALLING SEQUENCE:animgif, 'toto.gif'
12;
13; INPUTS:toto.gif: c''est le nom du fichier gif contenant
14; l''animation. Rq ce fichier est place dans le repertoire definit par
15; iodir.
16;
17; KEYWORD PARAMETERS:
18;
19; OUTPUTS:
20;
21; COMMON BLOCKS:
22;       common.pro
23;
24; SIDE EFFECTS:on utilise le Z buffer pour aller plus vite!.
25;              donc si on plante ds animgif il faut faire:
26;              IDL> device, /close
27;              IDL> set_plot, 'x'
28;              IDL> retall
29;
30; RESTRICTIONS: si on veut supprimer le @common,
31;               il faut definir a la main la taille de l''image (les
32;               variables xsize et ysize) ainsi que iodir.
33;
34; EXAMPLE:
35;
36; MODIFICATION HISTORY: Guillaume Roullet (grlod@ipsl.jussieu.fr)
37;                       Sebastien Masson (smasson@lodyc.jussieu.fr)
38;                       30/4/1999
39;-
40;------------------------------------------------------------
41;------------------------------------------------------------
42;------------------------------------------------------------
43PRO animgif, nomfic
44;
45  compile_opt idl2, strictarrsubs
46;
47@common
48;
49;  recupere la palette de couleur et la place dans rouge, vert, bleu
50;
51   tvlct,  rouge,vert,bleu,/get
52;
53;  complete la palette courante sur 256 couleurs
54;
55   red = [rouge, replicate(255, 256-n_elements(rouge))]
56   green = [vert, replicate(255, 256-n_elements(rouge))]
57   blue = [bleu, replicate(255, 256-n_elements(rouge))]
58;
59; bascule sur le z device, permettant de creer l''image sans
60; l''afficher
61   thisOS = !VERSION.OS_FAMILY
62   thisOS = STRMID(thisOS, 0, 3)
63   thisOS = STRUPCASE(thisOS)
64   set_plot, 'z'
65; taille de l''image (en nombre de pixel:
66   xsize = 30*(min(page_size, max = ma)*key_portrait + ma*(1-key_portrait))
67   ysize = 30*(min(page_size, max = ma)*(1-key_portrait) + ma*key_portrait)
68   device, set_resolution = [xsize, ysize]
69;
70; commencement du fichier gif. ecriture d''une image vide
71;
72   reinitplt
73   plot, [0], [0], /nodata
74   write_gif,iodir+nomfic,tvrd(),red, green, blue, /multiple
75;
76;
77;----------------------------------------------------------------
78; debut de la partie a changer
79;----------------------------------------------------------------
80;
81; boucle de creation de l''image
82;
83   calen = TIMEGEN(366, START=JULDAY(1,1,2000))
84   debut = where(calen EQ 19810105)
85   debut = where(calen EQ 19790105)
86   debut = debut[0]
87   if debut EQ -1 then begin
88      device, /close
89      CASE thisOS of
90         'MAC': SET_PLOT, thisOS
91         'WIN': SET_PLOT, thisOS
92         ELSE: SET_PLOT, 'X'
93      ENDCASE
94      stop
95   endif
96
97   for i = 0, 73*15-1 do begin
98;   for i = 0, 3*2-1 do begin
99;   for i = 0, 73*2-1 do begin
100;     print, 'Image numero : '+strtrim(i, 2)
101      date = calen[debut+i]
102      erase, 255
103      plt, nlec('sst', date, 'ATF'), 19, 29, int = .5, /noerase
104;      plt, nlec('sss', date, 'ATF'), label = 2, /noerase
105;      plt, nlec('htoth', date, 'RE3')-nlec('hpycn', date, 'RE3'), 10, 60, int = 5, /inv, /noerase
106;      domdef, 290,340,-5,15
107;      plt, norme(nlec('unsurf', date, 'RE3'), nlec('vnsurf', date, 'RE3')), 0, 1.2, int = .1, /noerase
108;
109;     Ecriture de l''image dans le fichier .gif
110;
111      write_gif,iodir+nomfic,tvrd(),red, green, blue, /multiple
112   ENDFOR
113;----------------------------------------------------------------
114; fin de la partie a changer
115;----------------------------------------------------------------
116;
117; fermeture du fichier
118   write_gif,iodir+nomfic,/close
119; rebascule en mode terminal X
120   device, /close
121   CASE thisOS of
122      'MAC': SET_PLOT, thisOS
123      'WIN': SET_PLOT, thisOS
124      ELSE: SET_PLOT, 'X'
125   ENDCASE
126
127
128   return
129end
Note: See TracBrowser for help on using the repository browser.