home *** CD-ROM | disk | FTP | other *** search
- /*
- ** GradualCrop.fred
- **
- ** $VER: GradualCrop.fred 1.1.0 (23.10.93)
- **
- ** This program can be run from an InvokeADPro list to gradually crop the images
- ** in a sequence.
- **
- ** Clips Imported:
- ** FREDGradualCropWidthCurr - Current crop width
- ** FREDGradualCropHeightCurr - Current crop height
- ** FREDGradualCropXOffCurr - Current crop x offset
- ** FREDGradualCropYOffCurr - Current crop y offset
- ** FREDGradualCropWidthIncr - Crop width increment per frame
- ** FREDGradualCropHeightIncr - Crop height increment per frame
- ** FREDGradualCropXOffIncr - Crop x offset increment per frame
- ** FREDGradualCropYOffIncr - Crop y offset increment per frame
- ** FREDGradualCropWidthFinal - Final crop width
- ** FREDGradualCropHeightFinal - Final crop height
- ** FREDGradualCropXOffFinal - Final crop x offset
- ** FREDGradualCropYOffFinal - Final crop y offset
- ** FREDNumberOfFrames - The number of frames selected
- ** FREDFrameCount - The number of frames already processed
- **
- ** 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 © 1992-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.
- */
-
- WidthCurr = GETCLIP( "FREDGradualCropWidthCurr" )
- IF (WidthCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropWidthCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- HeightCurr = GETCLIP( "FREDGradualCropHeightCurr" )
- IF (HeightCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropHeightCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- XOffCurr = GETCLIP( "FREDGradualCropXOffCurr" )
- IF (XOffCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropXOffCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- YOffCurr = GETCLIP( "FREDGradualCropYOffCurr" )
- IF (YOffCurr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropYOffCurr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- WidthIncr = GETCLIP( "FREDGradualCropWidthIncr" )
- IF (WidthIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropWidthIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- HeightIncr = GETCLIP( "FREDGradualCropHeightIncr" )
- IF (HeightIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropHeightIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- XOffIncr = GETCLIP( "FREDGradualCropXOffIncr" )
- IF (XOffIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropXOffIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- YOffIncr = GETCLIP( "FREDGradualCropYOffIncr" )
- IF (YOffIncr = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropYOffIncr," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- WidthFinal = GETCLIP( "FREDGradualCropWidthFinal" )
- IF (WidthFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropWidthFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- HeightFinal = GETCLIP( "FREDGradualCropHeightFinal" )
- IF (HeightFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropHeightFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- XOffFinal = GETCLIP( "FREDGradualCropXOffFinal" )
- IF (XOffFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropXOffFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- YOffFinal = GETCLIP( "FREDGradualCropYOffFinal" )
- IF (YOffFinal = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDGradualCropYOffFinal," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- NumberOfFrames = GETCLIP( "FREDNumberOfFrames" )
- IF (NumberOfFrames = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDNumberOfFrames," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- FrameCount = GETCLIP( "FREDFrameCount" )
- IF (FrameCount = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDFrameCount," || 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
-
- FrameCount = FrameCount + 1
- IF (FrameCount = NumberOfFrames) THEN DO
- WidthCurr = WidthFinal
- HeightCurr = HeightFinal
- XOffCurr = XOffFinal
- YOffCurr = YOffFinal
- END
-
- OPERATE WidthCurr HeightCurr XOffCurr YOffCurr
- IF (RC ~= 0) THEN DO
- Why = ADPRO_RESULT
- ADPRO_TO_FRONT
- OKAY1 "Cropping failed:" || NL ||,
- "Argument Information:" || NL ||,
- "Width = " || WidthCurr || NL ||,
- "Height = " || HeightCurr || NL ||,
- "XOffset = " || XOffCurr || NL ||,
- "YOffset = " || YOffCurr
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** Update the clips.
- */
-
- SETCLIP( "FREDGradualCropWidthCurr", WidthCurr + WidthIncr )
- SETCLIP( "FREDGradualCropHeightCurr", HeightCurr + HeightIncr )
- SETCLIP( "FREDGradualCropXOffCurr", XOffCurr + XOffIncr )
- SETCLIP( "FREDGradualCropYOffCurr", YOffCurr + YOffIncr )
- SETCLIP( "FREDFrameCount", FrameCount )
-
- EXIT 0
-