home *** CD-ROM | disk | FTP | other *** search
- /*
- ** CropToSize.fred
- **
- ** $VER: CropToSize.fred 1.1.0 (23.10.93)
- **
- ** This program can be run from an InvokeADPro list to crop the image
- ** to a size previously defined by the user and stored in REXX clips.
- **
- ** Clips Imported:
- ** FREDCropWidth - Width user entered
- ** FREDCropHeight - Height user entered
- ** FREDCropLeftOffset - Left offset user entered
- ** FREDCropTopOffset - Top offset user entered
- **
- ** NOTE: Clip names are case sensitive.
- **
- ** This script requires FRED v1.4.0 (or higher) to run. Also required is
- ** ADPro v2.5.0 (or higher).
- **
- ** Copyright © 1993 ASDG, Incorporated
- ** All Rights Reserved
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
-
-
- /*
- ** Get the required clips. Error if any are missing.
- */
-
- CropWidth = GETCLIP( "FREDCropWidth" )
- IF (CropWidth = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDCropWidth," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CropHeight = GETCLIP( "FREDCropHeight" )
- IF (CropHeight = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDCropHeight," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CropLeftOffset = GETCLIP( "FREDCropLeftOffset" )
- IF (CropLeftOffset = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDCropLeftOffset," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- CropTopOffset = GETCLIP( "FREDCropTopOffset" )
- IF (CropTopOffset = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDCropTopOffset," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** See what type of data is loaded in ADPro/MorphPlus.
- */
-
- CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
- IF (RESULT ~= 0) THEN
- EXIT 10
-
-
- /*
- ** Crop the image to the area the user defined. We will try to use
- ** Crop_Image if it's available. Otherwise, Crop_Visual will have to be
- ** used.
- */
-
- OFORMAT "CROP_IMAGE"
- IF (RC ~= 0) THEN DO
- OFORMAT "CROP_VISUAL"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "No Crop operator available."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
- END
-
- OPERATE CropWidth CropHeight CropLeftOffset CropTopOffset
- IF (RC ~= 0) THEN DO
- Why = ADPRO_RESULT
- ADPRO_TO_FRONT
- OKAY1 "Cropping failed:" || NL ||,
- "Argument Information:" || NL ||,
- "Width = " || CropWidth || NL ||,
- "Height = " || CropHeight || NL ||,
- "XOffset = " || CropLeftOffset || NL ||,
- "YOffset = " || CropTopOffset
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- EXIT 0
-