home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Graphics / PerfectPaint / rexx / general / MkQT.rx < prev    next >
Text File  |  2000-10-31  |  3KB  |  150 lines

  1. /*     arexx Script 
  2.     Save QuickTime Movie
  3.     You need "Jpeg2mov" in PerfectPaint:Tools/
  4. */
  5.  
  6.     options results
  7.     parse ARG Port b
  8.     
  9.     ADDRESS value Port
  10.     pp_AvoidRefresh
  11.  
  12.     pp_GetDepth
  13.     D=result
  14.     IF D<24 then DO
  15.         pp_Warn 'This*script*is*only|for*24bits*Picture.'    
  16.         pp_PermitRefresh
  17.         Exit
  18.     END
  19.  
  20.     pp_CountFrames
  21.     count=result
  22.     IF count<2 then DO
  23.         pp_Warn 'Make*an*Anim*first.'
  24.         pp_PermitRefresh
  25.         EXIT
  26.     END
  27.  
  28.     JPEGQ=100
  29.     JPEGS=0
  30.     JPEGC=0
  31.     FPS=25
  32.     file="ram:Anim.mov"
  33.  
  34.     if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/MkQT') THEN DO
  35.         IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/MkQT', "R") then DO
  36.             file = READLN('lfile')
  37.             JPEGQ=READLN('lfile')
  38.             JPEGS=READLN('lfile')
  39.             JPEGC=READLN('lfile')
  40.             FPS=READLN('lfile')
  41.             CALL CLOSE('lfile')
  42.             file2=""
  43.             do i=1 to LENGTH(file)
  44.                 a=SUBSTR(file,i,1)
  45.                 if a=" " then DO
  46.                     a="*"
  47.                 END
  48.                 file2=file2||a
  49.             END
  50.             file=file2
  51.         END
  52.     END
  53.  
  54.     pp_DialogInit 250 160 "*SAVE*QuickTime*Movie*" 6
  55.         pp_String 0 50 12 150 16 "Name" 1 100 file
  56.  
  57.         n=LASTPOS('/',file)
  58.         if n=0 then DO
  59.             n=LASTPOS(':',file)
  60.             file=SUBSTR(file,1,n)
  61.         END
  62.         else DO            
  63.             file=SUBSTR(file,1,n)
  64.         END
  65.  
  66.         pp_Getfile 1 205 13 0 "*Save*QuickTime*Movie*" 0 file
  67.  
  68.         pp_Slider 2 100 40 100 16 "JPEG*Quality" 1 1 100 JPEGQ
  69.         pp_Slider 3 100 59 100 16 "JPEG*Smooth" 1 0 100 JPEGS
  70.         pp_Cycle 4 100 78 100 16 "JPEG*Color" 1 "RGB|Gray" JPEGC
  71.  
  72.         pp_Integer 5 100 105 50 16 "FPS" 1 FPS
  73.     pp_Dialog    
  74.  
  75.     rc=result
  76.     if rc=0 then
  77.         do
  78.             pp_PermitRefresh            
  79.             EXIT
  80.         end    
  81.  
  82.     pp_GetDialog 0
  83.     file=result
  84.  
  85.     pp_GetDialog 2
  86.     JPEGQ=result
  87.  
  88.     pp_GetDialog 3
  89.     JPEGS=result
  90.  
  91.     pp_GetDialog 4
  92.     JPEGC=result
  93.  
  94.     pp_GetDialog 5
  95.     FPS=result
  96.  
  97.     CALL SavePrefs('MkQT',file,JPEGQ,JPEGS,JPEGC,FPS)
  98.     file2=file
  99.     ADDRESS value Port
  100.  
  101.     pp_asay 'Saving*Pictures|Please*wait*...'
  102.     pp_SavePrefs 1 0 100 0 0
  103.  
  104.     pp_GotoFrame 1
  105.  
  106.     path='perfectpaint:temp/anim'
  107.  
  108.     DO i=1 to count
  109.         file=path||i||'.jpg'
  110.         pp_Save file 0
  111.         pp_NextFrame
  112.     END    
  113.  
  114.     pp_CloseAsay
  115.     pp_asay 'Making*QuickTime*movie|Please*wait*...'
  116.     
  117.     ADDRESS COMMAND
  118.      'PerfectPaint:Tools/JPEG2MOV FROM perfectpaint:temp/anim%d.jpg to '||file2||' NEWFPS='||FPS||' MAXFRAMES '||count 
  119.  
  120.     ADDRESS value Port
  121.     pp_CloseAsay        
  122.     pp_PermitRefresh
  123.  
  124.     ADDRESS COMMAND    'delete >nil: PerfectPaint:Temp/?#.*'
  125.     
  126.     exit
  127.  
  128. SavePrefs: PROCEDURE
  129.     
  130.     Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
  131.  
  132.     if EXISTS(Prefname) THEN DO
  133.         ADDRESS COMMAND
  134.         'delete >nil: '||Prefname
  135.     END
  136.  
  137.     IF OPEN('pfile',PrefName,'W') THEN DO
  138.  
  139.     do i=2 to ARG()
  140.         CALL WRITELN('pfile',ARG(i))
  141.     end
  142.  
  143.     CALL CLOSE('pfile')
  144.  
  145. RETURN    
  146.  
  147.  
  148.  
  149.  
  150.