home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / ADPro251-3.DMS / ADPro251-3.adf / FREDScripts.lha / FREDOperators / GradualCrop.fred < prev    next >
Encoding:
Text File  |  1994-01-31  |  5.6 KB  |  238 lines

  1. /*
  2. ** GradualCrop.fred
  3. **
  4. ** $VER: GradualCrop.fred 1.1.0 (23.10.93)
  5. **
  6. ** This program can be run from an InvokeADPro list to gradually crop the images
  7. ** in a sequence.
  8. **
  9. ** Clips Imported:
  10. **    FREDGradualCropWidthCurr    -    Current crop width
  11. **    FREDGradualCropHeightCurr    -    Current crop height
  12. **    FREDGradualCropXOffCurr        -    Current crop x offset
  13. **    FREDGradualCropYOffCurr        -    Current crop y offset
  14. **    FREDGradualCropWidthIncr    -    Crop width increment per frame
  15. **    FREDGradualCropHeightIncr    -    Crop height increment per frame
  16. **    FREDGradualCropXOffIncr        -    Crop x offset increment per frame
  17. **    FREDGradualCropYOffIncr        -    Crop y offset increment per frame
  18. **    FREDGradualCropWidthFinal    -    Final crop width
  19. **    FREDGradualCropHeightFinal    -    Final crop height
  20. **    FREDGradualCropXOffFinal    -    Final crop x offset
  21. **    FREDGradualCropYOffFinal    -    Final crop y offset
  22. **    FREDNumberOfFrames        -    The number of frames selected
  23. **    FREDFrameCount            -    The number of frames already processed
  24. **
  25. ** NOTE: Clip names are case sensitive.
  26. **
  27. ** This script requires FRED v1.4.0 (or higher) to run.  Also required is
  28. ** ADPro v2.5.0 (or higher).
  29. **
  30. ** Copyright © 1992-1993 ASDG, Incorporated
  31. ** All Rights Reserved
  32. */
  33.  
  34.  
  35. ADDRESS "ADPro"
  36. OPTIONS RESULTS
  37.  
  38. PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
  39.  
  40. NL = '0A'X
  41. SQ = '27'X
  42. DQ = '22'X
  43. TRUE  = 1
  44. FALSE = 0
  45.  
  46.  
  47. /*
  48. ** Get the required clips.  Error if any are missing.
  49. */
  50.  
  51. WidthCurr = GETCLIP( "FREDGradualCropWidthCurr" )
  52. IF (WidthCurr = "") THEN DO
  53.     ADPRO_TO_FRONT
  54.     OKAY1 "Required clip, FREDGradualCropWidthCurr," || NL ||,
  55.         "is not specified."
  56.     SCREEN_TO_FRONT "FRED"
  57.     EXIT 10
  58. END
  59.  
  60. HeightCurr = GETCLIP( "FREDGradualCropHeightCurr" )
  61. IF (HeightCurr = "") THEN DO
  62.     ADPRO_TO_FRONT
  63.     OKAY1 "Required clip, FREDGradualCropHeightCurr," || NL ||,
  64.         "is not specified."
  65.     SCREEN_TO_FRONT "FRED"
  66.     EXIT 10
  67. END
  68.  
  69. XOffCurr = GETCLIP( "FREDGradualCropXOffCurr" )
  70. IF (XOffCurr = "") THEN DO
  71.     ADPRO_TO_FRONT
  72.     OKAY1 "Required clip, FREDGradualCropXOffCurr," || NL ||,
  73.         "is not specified."
  74.     SCREEN_TO_FRONT "FRED"
  75.     EXIT 10
  76. END
  77.  
  78. YOffCurr = GETCLIP( "FREDGradualCropYOffCurr" )
  79. IF (YOffCurr = "") THEN DO
  80.     ADPRO_TO_FRONT
  81.     OKAY1 "Required clip, FREDGradualCropYOffCurr," || NL ||,
  82.         "is not specified."
  83.     SCREEN_TO_FRONT "FRED"
  84.     EXIT 10
  85. END
  86.  
  87. WidthIncr = GETCLIP( "FREDGradualCropWidthIncr" )
  88. IF (WidthIncr = "") THEN DO
  89.     ADPRO_TO_FRONT
  90.     OKAY1 "Required clip, FREDGradualCropWidthIncr," || NL ||,
  91.         "is not specified."
  92.     SCREEN_TO_FRONT "FRED"
  93.     EXIT 10
  94. END
  95.  
  96. HeightIncr = GETCLIP( "FREDGradualCropHeightIncr" )
  97. IF (HeightIncr = "") THEN DO
  98.     ADPRO_TO_FRONT
  99.     OKAY1 "Required clip, FREDGradualCropHeightIncr," || NL ||,
  100.         "is not specified."
  101.     SCREEN_TO_FRONT "FRED"
  102.     EXIT 10
  103. END
  104.  
  105. XOffIncr = GETCLIP( "FREDGradualCropXOffIncr" )
  106. IF (XOffIncr = "") THEN DO
  107.     ADPRO_TO_FRONT
  108.     OKAY1 "Required clip, FREDGradualCropXOffIncr," || NL ||,
  109.         "is not specified."
  110.     SCREEN_TO_FRONT "FRED"
  111.     EXIT 10
  112. END
  113.  
  114. YOffIncr = GETCLIP( "FREDGradualCropYOffIncr" )
  115. IF (YOffIncr = "") THEN DO
  116.     ADPRO_TO_FRONT
  117.     OKAY1 "Required clip, FREDGradualCropYOffIncr," || NL ||,
  118.         "is not specified."
  119.     SCREEN_TO_FRONT "FRED"
  120.     EXIT 10
  121. END
  122.  
  123. WidthFinal = GETCLIP( "FREDGradualCropWidthFinal" )
  124. IF (WidthFinal = "") THEN DO
  125.     ADPRO_TO_FRONT
  126.     OKAY1 "Required clip, FREDGradualCropWidthFinal," || NL ||,
  127.         "is not specified."
  128.     SCREEN_TO_FRONT "FRED"
  129.     EXIT 10
  130. END
  131.  
  132. HeightFinal = GETCLIP( "FREDGradualCropHeightFinal" )
  133. IF (HeightFinal = "") THEN DO
  134.     ADPRO_TO_FRONT
  135.     OKAY1 "Required clip, FREDGradualCropHeightFinal," || NL ||,
  136.         "is not specified."
  137.     SCREEN_TO_FRONT "FRED"
  138.     EXIT 10
  139. END
  140.  
  141. XOffFinal = GETCLIP( "FREDGradualCropXOffFinal" )
  142. IF (XOffFinal = "") THEN DO
  143.     ADPRO_TO_FRONT
  144.     OKAY1 "Required clip, FREDGradualCropXOffFinal," || NL ||,
  145.         "is not specified."
  146.     SCREEN_TO_FRONT "FRED"
  147.     EXIT 10
  148. END
  149.  
  150. YOffFinal = GETCLIP( "FREDGradualCropYOffFinal" )
  151. IF (YOffFinal = "") THEN DO
  152.     ADPRO_TO_FRONT
  153.     OKAY1 "Required clip, FREDGradualCropYOffFinal," || NL ||,
  154.         "is not specified."
  155.     SCREEN_TO_FRONT "FRED"
  156.     EXIT 10
  157. END
  158.  
  159. NumberOfFrames = GETCLIP( "FREDNumberOfFrames" )
  160. IF (NumberOfFrames = "") THEN DO
  161.     ADPRO_TO_FRONT
  162.     OKAY1 "Required clip, FREDNumberOfFrames," || NL ||,
  163.         "is not specified."
  164.     SCREEN_TO_FRONT "FRED"
  165.     EXIT 10
  166. END
  167.  
  168. FrameCount = GETCLIP( "FREDFrameCount" )
  169. IF (FrameCount = "") THEN DO
  170.     ADPRO_TO_FRONT
  171.     OKAY1 "Required clip, FREDFrameCount," || NL ||,
  172.         "is not specified."
  173.     SCREEN_TO_FRONT "FRED"
  174.     EXIT 10
  175. END
  176.  
  177.  
  178. /*
  179. ** See what type of data is loaded in ADPro/MorphPlus.
  180. */
  181.  
  182. CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
  183. IF (RESULT ~= 0) THEN
  184.     EXIT 10
  185.  
  186.  
  187. /*
  188. ** Crop the image to the area the user defined.  We will try to use
  189. ** Crop_Image if it's available.  Otherwise, Crop_Visual will have to be
  190. ** used.
  191. */
  192.  
  193. OFORMAT "CROP_IMAGE"
  194. IF (RC ~= 0) THEN DO
  195.     OFORMAT "CROP_VISUAL"
  196.     IF (RC ~= 0) THEN DO
  197.         ADPRO_TO_FRONT
  198.         OKAY1 "No Crop operator available."
  199.         SCREEN_TO_FRONT "FRED"
  200.         EXIT 10
  201.     END
  202. END
  203.  
  204. FrameCount = FrameCount + 1
  205. IF (FrameCount = NumberOfFrames) THEN DO
  206.     WidthCurr = WidthFinal
  207.     HeightCurr = HeightFinal
  208.     XOffCurr = XOffFinal
  209.     YOffCurr = YOffFinal
  210. END
  211.  
  212. OPERATE WidthCurr HeightCurr XOffCurr YOffCurr
  213. IF (RC ~= 0) THEN DO
  214.     Why = ADPRO_RESULT
  215.     ADPRO_TO_FRONT
  216.     OKAY1 "Cropping failed:" || NL ||,
  217.         "Argument Information:" || NL ||,
  218.         "Width = " || WidthCurr || NL ||,
  219.         "Height = " || HeightCurr || NL ||,
  220.         "XOffset = " || XOffCurr || NL ||,
  221.         "YOffset = " || YOffCurr
  222.     SCREEN_TO_FRONT "FRED"
  223.     EXIT 10
  224. END
  225.  
  226.  
  227. /*
  228. ** Update the clips.
  229. */
  230.  
  231. SETCLIP( "FREDGradualCropWidthCurr", WidthCurr + WidthIncr )
  232. SETCLIP( "FREDGradualCropHeightCurr", HeightCurr + HeightIncr )
  233. SETCLIP( "FREDGradualCropXOffCurr", XOffCurr + XOffIncr )
  234. SETCLIP( "FREDGradualCropYOffCurr", YOffCurr + YOffIncr )
  235. SETCLIP( "FREDFrameCount", FrameCount )
  236.  
  237. EXIT 0
  238.