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

  1. /*
  2. ** CropToSize.fred
  3. **
  4. ** $VER: CropToSize.fred 1.1.0 (23.10.93)
  5. **
  6. ** This program can be run from an InvokeADPro list to crop the image
  7. ** to a size previously defined by the user and stored in REXX clips.
  8. **
  9. ** Clips Imported:
  10. **    FREDCropWidth        -    Width user entered
  11. **    FREDCropHeight        -    Height user entered
  12. **    FREDCropLeftOffset    -    Left offset user entered
  13. **    FREDCropTopOffset    -    Top offset user entered
  14. **
  15. ** NOTE: Clip names are case sensitive.
  16. **
  17. ** This script requires FRED v1.4.0 (or higher) to run.  Also required is
  18. ** ADPro v2.5.0 (or higher).
  19. **
  20. ** Copyright © 1993 ASDG, Incorporated
  21. ** All Rights Reserved
  22. */
  23.  
  24.  
  25. ADDRESS "ADPro"
  26. OPTIONS RESULTS
  27.  
  28. PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
  29.  
  30. NL = '0A'X
  31. SQ = '27'X
  32. DQ = '22'X
  33. TRUE  = 1
  34. FALSE = 0
  35.  
  36.  
  37. /*
  38. ** Get the required clips.  Error if any are missing.
  39. */
  40.  
  41. CropWidth = GETCLIP( "FREDCropWidth" )
  42. IF (CropWidth = "") THEN DO
  43.     ADPRO_TO_FRONT
  44.     OKAY1 "Required clip, FREDCropWidth," || NL ||,
  45.         "is not specified."
  46.     SCREEN_TO_FRONT "FRED"
  47.     EXIT 10
  48. END
  49.  
  50. CropHeight = GETCLIP( "FREDCropHeight" )
  51. IF (CropHeight = "") THEN DO
  52.     ADPRO_TO_FRONT
  53.     OKAY1 "Required clip, FREDCropHeight," || NL ||,
  54.         "is not specified."
  55.         SCREEN_TO_FRONT "FRED"
  56.     EXIT 10
  57. END
  58.  
  59. CropLeftOffset = GETCLIP( "FREDCropLeftOffset" )
  60. IF (CropLeftOffset = "") THEN DO
  61.     ADPRO_TO_FRONT
  62.     OKAY1 "Required clip, FREDCropLeftOffset," || NL ||,
  63.         "is not specified."
  64.         SCREEN_TO_FRONT "FRED"
  65.     EXIT 10
  66. END
  67.  
  68. CropTopOffset = GETCLIP( "FREDCropTopOffset" )
  69. IF (CropTopOffset = "") THEN DO
  70.     ADPRO_TO_FRONT
  71.     OKAY1 "Required clip, FREDCropTopOffset," || NL ||,
  72.         "is not specified."
  73.         SCREEN_TO_FRONT "FRED"
  74.     EXIT 10
  75. END
  76.  
  77.  
  78. /*
  79. ** See what type of data is loaded in ADPro/MorphPlus.
  80. */
  81.  
  82. CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
  83. IF (RESULT ~= 0) THEN
  84.     EXIT 10
  85.  
  86.  
  87. /*
  88. ** Crop the image to the area the user defined.  We will try to use
  89. ** Crop_Image if it's available.  Otherwise, Crop_Visual will have to be
  90. ** used.
  91. */
  92.  
  93. OFORMAT "CROP_IMAGE"
  94. IF (RC ~= 0) THEN DO
  95.     OFORMAT "CROP_VISUAL"
  96.     IF (RC ~= 0) THEN DO
  97.         ADPRO_TO_FRONT
  98.         OKAY1 "No Crop operator available."
  99.         SCREEN_TO_FRONT "FRED"
  100.         EXIT 10
  101.     END
  102. END
  103.  
  104. OPERATE CropWidth CropHeight CropLeftOffset CropTopOffset
  105. IF (RC ~= 0) THEN DO
  106.     Why = ADPRO_RESULT
  107.     ADPRO_TO_FRONT
  108.     OKAY1 "Cropping failed:" || NL ||,
  109.         "Argument Information:" || NL ||,
  110.         "Width = " || CropWidth || NL ||,
  111.         "Height = " || CropHeight || NL ||,
  112.         "XOffset = " || CropLeftOffset || NL ||,
  113.         "YOffset = " || CropTopOffset
  114.     SCREEN_TO_FRONT "FRED"
  115.     EXIT 10
  116. END
  117.  
  118. EXIT 0
  119.