/* ** 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