from PSPApp import *
import PSPUtils

def ScriptProperties():
    return {
        'Author': u'Corel Corporation',
        'Copyright': u'Copyright (c) 2002-2006 Corel Corporation. All rights reserved.',
        'Description': "Charcoal Effect",
        'Host': u'Paint Shop Pro 9',
        'Host Version': u'9.00'
        }

def Do(Environment):
    # EnableOptimizedScriptUndo
    App.Do( Environment, 'EnableOptimizedScriptUndo', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((9,0,0),1)
                }
            })

    if PSPUtils.IsPaletted(Environment, App.TargetDocument):
        # IncreaseColorsTo16Million
        App.Do( Environment, 'IncreaseColorsTo16Million', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((9,0,0),1)
                }
            })

    # JPEG Artifact Removal
    App.Do( Environment, 'JPEGArtifactRemoval', {
            'RestoreCrispness': 50, 
            'Strength': App.Constants.JPEGStrength.Normal, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'RandomSeed': 45565366, 
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((9,0,0),1)
                }
            })

    # DigitalCameraNoiseRemoval
    App.Do( Environment, 'DigitalCameraNoiseRemoval', {
            'SmallDetails': 50, 
            'MediumDetails': 50, 
            'LargeDetails': 50, 
            'Blending': 70, 
            'Sharpening': 0, 
            'LockDetailSettings': True, 
            'NoiseColorAdjustment': ([4,2520,201,2520],), 
            'Hue': 0, 
            'Range': 0, 
            'MinimalLuminance': -1, 
            'MaximalLuminance': -1, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((9,0,0),1)
                }
            })

    # FindEdges
    App.Do( Environment, 'FindEdges', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((9,0,0),1)
                }
            })

    # HistogramEqualize
    App.Do( Environment, 'HistogramEqualize', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((9,0,0),1)
                }
            })

    if PSPUtils.IsTrueColor(Environment, App.TargetDocument):
        # Color Adjust Hue Map
        App.Do( Environment, 'ColorAdjustHueMap', {
                'HueShift': (0,36,72,108,144,180,216,252,288,324), 
                'LightnessShift': 50, 
                'SaturationShift': 0, 
                'GeneralSettings': {
                    'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                    'AutoActionMode': App.Constants.AutoActionMode.Match,
                    'Version': ((9,0,0),1)
                    }
                })

    if not PSPUtils.IsGreyScale(Environment, App.TargetDocument):
        # Greyscale
        App.Do( Environment, 'Greyscale', {
                'GeneralSettings': {
                    'ExecutionMode': App.Constants.ExecutionMode.Default, 
                    'AutoActionMode': App.Constants.AutoActionMode.Match,
                    'Version': ((9,0,0),1)
                    }
                })

    # DigitalCameraNoiseRemoval
    App.Do( Environment, 'DigitalCameraNoiseRemoval', {
            'SmallDetails': 50, 
            'MediumDetails': 50, 
            'LargeDetails': 50, 
            'Blending': 70, 
            'Sharpening': 0, 
            'LockDetailSettings': True, 
            'NoiseColorAdjustment': ([4,2520,201,2520],), 
            'Hue': 0, 
            'Range': 0, 
            'MinimalLuminance': -1, 
            'MaximalLuminance': -1, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Silent, 
                'AutoActionMode': App.Constants.AutoActionMode.Match,
                'Version': ((9,0,0),1)
                }
            })


 