/*
** _ColorCharcoal
**
** $VER: _ColorCharcoal 1.1.0 (12.1.94)
**
** This program can be run from ADPro's operator list to give the current
** loaded image a colored charcoal look.
**
** This script required ADPro v2.5.0 (or higher).
**
** Copyright © 1993-1994 ASDG, Incorporated
** All Rights Reserved
*/


ADDRESS "ADPro"
OPTIONS RESULTS

NL = '0A'X
SQ = '27'X
DQ = '22'X
TRUE  = 1
FALSE = 0
TempCharcoalImage = "T:TempCharcoalImage"
TempDefaults = "T:TempADProDefaults"


/*
** Save the current environment.
*/

SAVE_DEFAULTS TempDefaults


/*
** See what type of data is loaded in ADPro/MorphPlus.
*/

CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
IF (RESULT ~= 0) THEN
	CALL ErrorOut 10


/*
** Apply the Deep Press convolution matrix.
*/

OPERATOR "CONVOLVE" "ADPRO:Convolutions/Sharpen3_3x3" 100 0
IF (RC ~= 0) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "Could not apply convolution matrix."
	CALL ErrorOut 10
END


/*
** Emboss the image inward.
*/

SAVER "IFF" TempCharcoalImage "RAW"
IF (RC ~= 0) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "Saving copy of image failed." || NL ||,
		"Argument Information:" || NL ||,
		"Filename = " || TempCharcoalImage || NL ||,
		"Type = " || "RAW"
	CALL ErrorOut 10
END

OPERATOR "NEGATIVE"
IF (RC ~= 0) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "The operator NEGATIVE" || NL ||,
		"failed to execute."
	CALL ErrorOut 10
END

LOADER "UNIVERSAL" TempCharcoalImage 1 1 50
IF (RC ~= 0) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "Reloading image failed." || NL ||,
		"Argument Information:" || NL ||,
		"X Offset = " || 1 || NL ||,
		"Y Offset = " || 1 || NL ||,
		"Mix = " || 50
	CALL ErrorOut 10
END


	/*
	** See what type of data is loaded in ADPro/MorphPlus.
	*/

CALL "FREDSCRIPTS:FREDFunctions/CheckForGrayImageData" TRUE
IF (RESULT ~= 0) THEN
	CALL ErrorOut 10


CONTRAST 50

OPERATOR "APPLY_MAP"
IF (RC ~= 0) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "The operator APPLY_MAP," || NL ||,
		"failed to execute."
	CALL ErrorOut 10
END


/*
** Colorize the image.
*/

OPERATOR "COLORIZE" HSV 0 255 (-1) 70 5 5 HUE 0 360
IF (RC ~= 0) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "Error colorizing the image."
	CALL ErrorOut 10
END


/*
** Saturate the image.
*/

OPERATOR "SATURATION" "YUV" 100
IF (RC ~= 0) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "Error saturating the image."
	CALL ErrorOut 10
END


CALL ErrorOut 0


ErrorOut:
	PARSE ARG ExitCode

	IF (EXISTS( TempDefaults )) THEN DO
		LOAD_DEFAULTS TempDefaults
		IF (RC ~= 0) THEN DO
			ADPRO_TO_FRONT
			OKAY1 "Error restoring settings."
		END

		ADDRESS COMMAND "Delete >NIL:" TempDefaults
	END

	IF (EXISTS( TempCharcoalImage )) THEN
		ADDRESS COMMAND "Delete >NIL:" TempCharcoalImage

	EXIT ExitCode
