home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / ADPro251-3.DMS / ADPro251-3.adf / FREDScripts.lha / FREDSavers / FieldBuster.fred next >
Encoding:
Text File  |  1994-01-31  |  3.6 KB  |  167 lines

  1. /*
  2. ** FieldBuster.fred
  3. **
  4. ** $VER: FieldBuster.fred 1.2.0 (24.10.93)
  5. **
  6. ** This program can be run from an InvokeADPro list to split the selected
  7. ** frames (n) into separate odd and even fields (2n).
  8. **
  9. ** Clips Imported:
  10. **    FREDEvenFieldExt    -    Filename extension for even fields
  11. **    FREDOddFieldExt        -    Filename extension for odd fields
  12. **
  13. ** NOTE: Clip names are case sensitive.
  14. **
  15. ** This script requires FRED v1.4.0 (or higher) to run.  Also required is
  16. ** ADPro v2.5.0 (or higher).
  17. **
  18. ** Copyright © 1992-1993 ASDG, Incorporated
  19. ** All Rights Reserved
  20. */
  21.  
  22.  
  23. ADDRESS "ADPro"
  24. OPTIONS RESULTS
  25.  
  26. PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
  27.  
  28. NL = '0A'X
  29. SQ = '27'X
  30. DQ = '22'X
  31. TRUE  = 1
  32. FALSE = 0
  33. TempBustedFields = "T:TempBustedFields"
  34.  
  35.  
  36. /*
  37. ** Get the required clips.  Error if any are missing.
  38. */
  39.  
  40. EvenFieldExt = GETCLIP( "FREDEvenFieldExt" )
  41. IF (EvenFieldExt = "") THEN DO
  42.     ADPRO_TO_FRONT
  43.     OKAY1 "Required clip, FREDEvenFieldExt," || NL ||,
  44.         "is not specified."
  45.     SCREEN_TO_FRONT "FRED"
  46.     EXIT 10
  47. END
  48.  
  49. OddFieldExt = GETCLIP( "FREDOddFieldExt" )
  50. IF (OddFieldExt = "") THEN DO
  51.     ADPRO_TO_FRONT
  52.     OKAY1 "Required clip FREDOddFieldExt" || NL ||,
  53.         "not specified."
  54.     SCREEN_TO_FRONT "FRED"
  55.     EXIT 10
  56. END
  57.  
  58.  
  59. /*
  60. ** See what type of data is loaded in ADPro/MorphPlus.
  61. */
  62.  
  63. CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
  64. IF (RESULT ~= 0) THEN
  65.     EXIT 10
  66.  
  67.  
  68. /*
  69. ** Bust each frame into its fields using the defined filename and
  70. ** field name extension.
  71. */
  72.  
  73. XSIZE
  74. Width = ADPRO_RESULT
  75.  
  76. YSIZE
  77. Height = ADPRO_RESULT
  78.  
  79. EvenFieldHeight = TRUNC( (Height + 1) / 2 )
  80.  
  81. OPERATOR "DEINTERLACE"
  82. IF (RC ~= 0) THEN DO
  83.     ADPRO_TO_FRONT
  84.     OKAY1 "The operator DEINTERLACE" || NL ||,
  85.         "failed to execute."
  86.     SCREEN_TO_FRONT "FRED"
  87.     EXIT 10
  88. END
  89.  
  90. SAVER "IFF" TempBustedFields "RAW"
  91. IF (RC ~= 0) THEN DO
  92.     ADPRO_TO_FRONT
  93.     OKAY1 "The IFF saver failed to" || NL ||,
  94.         "save the image." || NL ||,
  95.         "Argument Information:" || NL ||,
  96.         "Filename = " || TempBustedFields || NL ||,
  97.         "Type = " || "RAW"
  98.     SCREEN_TO_FRONT "FRED"
  99.     EXIT 10
  100. END
  101.  
  102. OPERATOR "CROP_VISUAL" Width EvenFieldHeight 0 0
  103. IF (RC ~= 0) THEN DO
  104.     ADPRO_TO_FRONT
  105.     OKAY1 "The operator CROP_VISUAL" || NL ||,
  106.         "failed to execute on the even field." || NL ||,
  107.         "Argument Information:" || NL ||,
  108.         "Width = " || Width || NL ||,
  109.         "Height = " || Height || NL ||,
  110.         "EvenFieldHeight = " || EvenFieldHeight
  111.     SCREEN_TO_FRONT "FRED"
  112.     EXIT 10
  113. END
  114.  
  115. FieldName = OVERLAY( EvenFieldExt, FrameFName, LENGTH( FrameFName ), LENGTH( EvenFieldExt ) ) || '"'
  116.  
  117. SAVER "IFF" FieldName "RAW"
  118. IF (RC ~= 0) THEN DO
  119.     ADPRO_TO_FRONT
  120.     OKAY1 "The IFF saver failed to" || NL ||,
  121.         "save the image." || NL ||,
  122.         "Argument Information:" || NL ||,
  123.         "Filename = " || FieldName || NL ||,
  124.         "Type = " || "RAW"
  125.     SCREEN_TO_FRONT "FRED"
  126.     EXIT 10
  127. END
  128.  
  129. LOADER "IFF" TempBustedFields
  130. IF (RC ~= 0) THEN DO
  131.     ADPRO_TO_FRONT
  132.     OKAY1 "The IFF loader failed to" || NL ||,
  133.         "load the image." || NL ||,
  134.         "Argument Information:" || NL ||,
  135.         "Filename = " || TempBustedFields
  136.     SCREEN_TO_FRONT "FRED"
  137.     EXIT 10
  138. END
  139.  
  140.  
  141. OPERATOR "CROP_VISUAL" Width (Height - EvenFieldHeight) 0 EvenFieldHeight
  142. IF (RC ~= 0) THEN DO
  143.     ADPRO_TO_FRONT
  144.     OKAY1 "The operator CROP_VISUAL" || NL ||,
  145.         "failed to crop the odd field." || NL ||,
  146.         "Argument Information:" || NL ||,
  147.         "Width = " || Width || NL ||,
  148.         "Height = " || ( Height - EvenFieldHeight ) || NL ||,
  149.         "XOffset = 0" || NL ||,
  150.         "YOffset = " || EvenFieldHeight
  151.     SCREEN_TO_FRONT "FRED"
  152.     EXIT 10
  153. END
  154.  
  155. FieldName = OVERLAY( OddFieldExt, FrameFName, LENGTH( FrameFName ), LENGTH( OddFieldExt ) ) || '"'
  156.  
  157. SAVER "IFF" FieldName "RAW"
  158. IF (RC ~= 0) THEN DO
  159.     ADPRO_TO_FRONT
  160.     OKAY1 "The IFF saver failed to" || NL ||,
  161.         "save the image."
  162.     SCREEN_TO_FRONT "FRED"
  163.     EXIT 10
  164. END
  165.  
  166. EXIT 0
  167.