PictureEffects Xojo Plugin |

# ConvolutionEffect Class

A class to do Convolution effects on pictures.
This class has the following Convolution effects:
- Smooth
- Sharpen
- EdgeDetect
- Blur
- MeanRemoval
- Emboss
- Custom 3x3 Convolution
  This class supports use of multiple CPU cores on MacOS X, Windows and Linux systems.

  MPImageFilter
  ConvolutionEffect

  class ConvolutionEffect

  #### Properties

  IgnoreAlpha | If set to true then the alpha channel of the source image will not be included in the destination image.
  CPUCoreCount (Inherited) (console safe) | Returns number of detected CPU cores on the running machine.
  ErrorCode (Inherited) (console safe) | Returns error code after applying the effect. This value is a Constant defined in the PictureEffectsError module.
  MultiprocessingHint (Inherited) (console safe) | Use this property to fine tune CPU usage for this algorithm. By default this property is set to zero (Automatic). This property accepts all constants that are defined in this class.
  ProgressHandler (Inherited) (console safe) | Use this property to use a progress class to get progress feedback from this function. This class must be a class that Implements the IProgressHandler Interface which is defined in this plugin.

  #### Methods

  ApplyMatrix | To apply a custom 3x3 Matrix to a picture use the ApplyMatrix function
  Blur | To Blur a picture use the Blur function.
  EdgeDetect | To detect edges of a picture use the EdgeDetect function. This filter will leave the Image black with colored edges. A Invert filter is often applied after a edge detect filter is applied.
  Emboss | Emboss is a type of edge detection filter where the image is left like its carved in a gray stone.
  MeanRemoval | To greatly sharpen a picture use the MeanRemoval function. MeanRemoval is a more extreme type of sharpening function that Sharpen.
  Sharpen | To sharpen a picture use the Sharpen function.
  Smooth | To smooth a picture use the Smooth function.

  #### Constants

  CPU_USE_MACHINE_CORE_COUNT = -1 (Inherited) | Uses exactly the number of available CPU cores in the machine. (Available here means on-line CPU cores, some laptops can put CPU cores off line in low battery situations)
  CPU_USE_AUTOMATIC = 0 (Inherited) | Takes into account number of available CPU cores on the Machine and also tries to select the fastest way based on developer rating for each algorithm and picture size. (In simple algorithms then the fastest path is sometimes 2 or 3 CPU cores and not 4 CPU cores because of the overhead of managing multiple cores). In more complex algorithms then 3 or 4 cores are almost always faster than 2 cores.
  CPU_USE_1_CORE = 1 (Inherited) | Uses one CPU core.
  CPU_USE_2_CORES = 2 (Inherited) | Uses two CPU cores. This setting will also work on machines with less than two CPU cores, but it will be slower or best case same speed as using the correct setting for such machine.
  CPU_USE_3_CORES = 3 (Inherited) | Uses three CPU cores. This setting will also work on machines with less than three CPU cores, but it will be slower or best case same speed as using the correct setting for such machine.
  CPU_USE_4_CORES = 4 (Inherited) | Uses four CPU cores. This setting will also work on machines with less than four CPU cores, but it will be slower or best case same speed as using the correct setting for such machine.
  CPU_USE_5_CORES = 5 (Inherited) | Uses five CPU cores. This setting will also work on machines with less than four CPU cores, but it will be slower or best case same speed as using the correct setting for such machine.
  CPU_USE_6_CORES = 6 (Inherited) | Uses six CPU cores. This setting will also work on machines with less than four CPU cores, but it will be slower or best case same speed as using the correct setting for such machine.
  CPU_USE_7_CORES = 7 (Inherited) | Uses seven CPU cores. This setting will also work on machines with less than four CPU cores, but it will be slower or best case same speed as using the correct setting for such machine.
  CPU_USE_8_CORES = 8 (Inherited) | Uses eight CPU cores. This setting will also work on machines with less than four CPU cores, but it will be slower or best case same speed as using the correct setting for such machine.

  #### Supported Platforms:

- MacOS X Carbon
- MacOS X Cocoa 32 bit
- MacOS X Cocoa 64 bit
- Windows 32 bit
- Windows 64 bit
- Linux 32 bit
- Linux 64 bit
- Linux ARM