_ImageMagick()
{
    local prev
    prev=${COMP_WORDS[COMP_CWORD-1]}

    case "$prev" in
        -channel)
            COMPREPLY=( $( compgen -W 'Red Green Blue Opacity \
                Matte Cyan Magenta Yellow Black' -- $cur ) )
            return 0
            ;;
        -colormap)
            COMPREPLY=( $( compgen -W 'shared private' -- $cur ) )
            return 0
            ;;
        -colorspace)
            COMPREPLY=( $( compgen -W 'GRAY OHTA RGB Transparent \
                XYZ YCbCr YIQ YPbPr YUV CMYK' -- $cur ) )
            return 0
            ;;
        -compose)
            COMPREPLY=( $( compgen -W 'Over In Out Atop Xor Plus \
                Minus Add Subtract Difference Multiply Bumpmap\
                Copy CopyRed CopyGreen CopyBlue CopyOpacity' \
                -- $cur ) )
            return 0
            ;;
        -compress)
            COMPREPLY=( $( compgen -W 'None BZip Fax Group4 JPEG \
                Lossless LZW RLE Zip' -- $cur ) )
            return 0
            ;;
        -dispose)
            COMPREPLY=( $( compgen -W 'Undefined None Background \
                            Previous' -- $cur ) )
            return 0
            ;;
        -encoding)
            COMPREPLY=( $( compgen -W 'AdobeCustom AdobeExpert \
                AdobeStandard AppleRoman BIG5 GB2312 Latin2 \
                None SJIScode Symbol Unicode Wansung' -- $cur))
            return 0
            ;;
        -endian)
            COMPREPLY=( $( compgen -W 'MSB LSB' -- $cur ) )
            return 0
            ;;
        -filter)
            COMPREPLY=( $( compgen -W 'Point Box Triangle Hermite \
                Hanning Hamming Blackman Gaussian Quadratic \
                Cubic Catrom Mitchell Lanczos Bessel Sinc' \
                -- $cur ) )
            return 0
            ;;
        -format)
            COMPREPLY=( $( convert -list format | \
                    awk '/ [r-][w-][+-] / {print $1}' | \
                    tr -d '*' | tr [:upper:] [:lower:] | \
                    grep "^$cur" ) )
            return 0
            ;;
        -gravity)
            COMPREPLY=( $( compgen -W 'Northwest North NorthEast \
                West Center East SouthWest South SouthEast' \
                -- $cur ) )
            return 0
            ;;
        -intent)
            COMPREPLY=( $( compgen -W 'Absolute Perceptual \
                    Relative Saturation' -- $cur ) )
            return 0
            ;;
        -interlace)
            COMPREPLY=( $( compgen -W 'None Line Plane Partition' \
                    -- $cur ) )
            return 0
            ;;
        -limit)
            COMPREPLY=( $( compgen -W 'Disk File Map Memory' \
                    -- $cur ) )
            return 0
            ;;
        -list)
            COMPREPLY=( $( compgen -W 'Delegate Format Magic \
                    Module Resource Type' -- $cur ) )
            return 0
            ;;
        -map)
            COMPREPLY=( $( compgen -W 'best default gray red \
                    green blue' -- $cur ) )
            _filedir
            return 0
            ;;
        -noise)
            COMPREPLY=( $( compgen -W 'Uniform Gaussian \
                    Multiplicative \
                Impulse Laplacian Poisson' -- $cur ) )
            return 0
            ;;
        -preview)
            COMPREPLY=( $( compgen -W 'Rotate Shear Roll Hue \
                    Saturation Brightness Gamma Spiff \
                    Dull Grayscale Quantize Despeckle \
                    ReduceNoise AddNoise Sharpen Blur \
                    Treshold EdgeDetect Spread Shade \
                    Raise Segment Solarize Swirl Implode \
                    Wave OilPaint CharcoalDrawing JPEG' \
                    -- $cur ) )
            return 0
            ;;
        -@(mask|profile|texture|tile|write))
            _filedir
            return 0
            ;;
        -type)
            COMPREPLY=( $( compgen -W 'Bilevel Grayscale Palette \
                    PaletteMatte TrueColor TrueColorMatte \
                    ColorSeparation ColorSeparationlMatte \
                    Optimize' -- $cur ) )
            return 0
            ;;
        -units)
            COMPREPLY=( $( compgen -W 'Undefined PixelsPerInch \
                    PixelsPerCentimeter' -- $cur ) )
            return 0
            ;;
        -virtual-pixel)
            COMPREPLY=( $( compgen -W 'Constant Edge mirror tile' \
                    -- $cur ) )
            return 0
            ;;
        -visual)
            COMPREPLY=( $( compgen -W 'StaticGray GrayScale \
                    StaticColor PseudoColor TrueColor \
                    DirectColor defaut visualid' -- $cur ))
            return 0
            ;;
    esac
} # _ImageMagick()
