PictureEffectsRaw Xojo Plugin

ImageComparerRaw Class (console safe)

A class to compare RawBitmap for differences. The class can to exact match or use a tolerance parameter. The class work on 24 and 32 bit images.

Supports:
  • 8 bit per channel bitmaps

  • 16 bit per channel bitmaps

  • RGB color spaces

  • Gray color spaces

  • CMYK color spaces

  • Synchronous and asynchronous modes supported



  • This class supports use of multiple CPU cores.

    MPImageFilterRaw
       ImageComparerRaw

    class ImageComparerRaw

    Properties

    AsyncCompleted (Inherited) (console safe) Returns true if asynchronous execution has completed, else false.
    AsyncResult (Inherited) (console safe) Returns the result bitmap of asynchronous execution.
    CPUCoreCount (Inherited) (console safe) Returns number of detected CPU cores on the running machine.
    Canceled (Inherited) (console safe) If this one returns true then the effects execution was canceled by a Progress handler.
    ChangedPixelCount (console safe) Returns the number of changed pixels if using the more detailed compare method.
    Difference (console safe) Returns difference enum value which tells what is different if using the more detailed compare method.
    ErrorCode (Inherited) (console safe) Returns error code after applying the effect. This value is a Constant defined in the PictureEffectsRawError module.
    ForceThreads (Inherited) (console safe) Forces use of thread when set to true even when using only one CPU core.
    Mask (console safe) Use the mask to do masked comparison operation.
    MaximumCPUCores (Inherited) (console safe) Read only property where each effect can report maximum CPU cores it supports.
    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

    Cancel (Inherited) (console safe) Cancels processing and waits for threads to come to full stop when in asynchronous execution.
    Compare (console safe) A simple comparison that just returns true or false if the two bitmaps are the same.
    Compare (console safe) A more detailed comparison that returns detailed information on what is different between the bitmaps.
    CompareAsync (console safe) Asynchronous version of the more detailed comparison that returns detailed information on what is different between the bitmaps.

    Enumerations

    DifferenceValueEnum that specifies difference between RawBitmap’s

    Constants

    CPU_USE_MACHINE_CORE_COUNT = -1 (Inherited)
    CPU_USE_AUTOMATIC = 0 (Inherited)
    CPU_USE_1_CORE = 1 (Inherited)
    CPU_USE_2_CORES = 2 (Inherited)
    CPU_USE_3_CORES = 3 (Inherited)
    CPU_USE_4_CORES = 4 (Inherited)
    CPU_USE_5_CORES = 5 (Inherited)
    CPU_USE_6_CORES = 6 (Inherited)
    CPU_USE_7_CORES = 7 (Inherited)
    CPU_USE_8_CORES = 8 (Inherited)

    Examples

    Dim comparer as ImageComparerRaw
    Dim result as RawBitmap

    comparer = new ImageComparerRaw()

    result = comparer.Compare(m_PictureSource, m_PictureSource2, toleranceSlider.Value)

    m_DistortedImage = RawBitmapConverter.ToPicture(result)

    if comparer.Difference = ImageComparerRaw.DifferenceValue.NONE then
    StaticText6.Text = "The images are equal"
    elseif comparer.Difference = ImageComparerRaw.DifferenceValue.PIXELDEPTH then
    StaticText6.Text = "The images dont have same pixel depth"
    elseif comparer.Difference = ImageComparerRaw.DifferenceValue.SIZE then
    StaticText6.Text = "The images dont have same size"
    elseif comparer.Difference = ImageComparerRaw.DifferenceValue.COLORSPACE then
    StaticText6.Text = "The images dont have same colorspace"
    elseif comparer.Difference = ImageComparerRaw.DifferenceValue.PIXELS then
    StaticText6.Text = "The images dont have same pixels"
    else
    StaticText6.Text = "Error comparing images"
    end if

    StaticText5.Text = "Number of different pixels found: " + Str(comparer.ChangedPixelCount)

    Supported Platforms:

  • macOS Intel 64 bit
  • macOS Apple Silicon
  • Windows 32 bit
  • Windows 64 bit
  • Windows ARM 64 bit
  • Linux 32 bit
  • Linux 64 bit
  • Linux ARM 32 bit
  • Linux ARM 64 bit
  • iOS