# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _ExactImage
else:
    import _ExactImage

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


PACKAGE = _ExactImage.PACKAGE
VERSION = _ExactImage.VERSION
VERSION_MAJOR = _ExactImage.VERSION_MAJOR
VERSION_MINOR = _ExactImage.VERSION_MINOR
VERSION_MICRO = _ExactImage.VERSION_MICRO
DATE = _ExactImage.DATE
WITHX11 = _ExactImage.WITHX11
WITHFREETYPE = _ExactImage.WITHFREETYPE
WITHEVAS = _ExactImage.WITHEVAS
WITHLIBJPEG = _ExactImage.WITHLIBJPEG
WITHLIBTIFF = _ExactImage.WITHLIBTIFF
WITHLIBPNG = _ExactImage.WITHLIBPNG
WITHLIBGIF = _ExactImage.WITHLIBGIF
WITHJASPER = _ExactImage.WITHJASPER
WITHOPENEXR = _ExactImage.WITHOPENEXR
WITHEXPAT = _ExactImage.WITHEXPAT
WITHLCMS = _ExactImage.WITHLCMS
WITHBARDECODE = _ExactImage.WITHBARDECODE
WITHLUA = _ExactImage.WITHLUA
WITHSWIG = _ExactImage.WITHSWIG
WITHPERL = _ExactImage.WITHPERL
WITHPYTHON = _ExactImage.WITHPYTHON
WITHPHP = _ExactImage.WITHPHP
WITHRUBY = _ExactImage.WITHRUBY
EVASGL = _ExactImage.EVASGL
TGA = _ExactImage.TGA
PCX = _ExactImage.PCX

def newImage():
    return _ExactImage.newImage()

def newImageWithTypeAndSize(samplesPerPixel, bitsPerSample, width, height, fill=0):
    return _ExactImage.newImageWithTypeAndSize(samplesPerPixel, bitsPerSample, width, height, fill)

def deleteImage(image):
    return _ExactImage.deleteImage(image)

def copyImage(image):
    return _ExactImage.copyImage(image)

def copyImageCropRotate(image, x, y, w, h, angle):
    return _ExactImage.copyImageCropRotate(image, x, y, w, h, angle)

def decodeImage(image, data):
    return _ExactImage.decodeImage(image, data)

def decodeImageFile(image, filename):
    return _ExactImage.decodeImageFile(image, filename)

def encodeImage(*args):
    return _ExactImage.encodeImage(*args)

def encodeImageFile(*args):
    return _ExactImage.encodeImageFile(*args)

def imageChannels(image):
    return _ExactImage.imageChannels(image)

def imageChannelDepth(image):
    return _ExactImage.imageChannelDepth(image)

def imageWidth(image):
    return _ExactImage.imageWidth(image)

def imageHeight(image):
    return _ExactImage.imageHeight(image)

def imageColorspace(image):
    return _ExactImage.imageColorspace(image)

def imageXres(image):
    return _ExactImage.imageXres(image)

def imageYres(image):
    return _ExactImage.imageYres(image)

def imageSetXres(image, xres):
    return _ExactImage.imageSetXres(image, xres)

def imageSetYres(image, yres):
    return _ExactImage.imageSetYres(image, yres)

def get(image, x, y):
    return _ExactImage.get(image, x, y)

def set(image, x, y, r, g, b, a=1.0):
    return _ExactImage.set(image, x, y, r, g, b, a)

def imageConvertColorspace(image, target_colorspace, threshold=127):
    return _ExactImage.imageConvertColorspace(image, target_colorspace, threshold)

def imageResize(image, x, y):
    return _ExactImage.imageResize(image, x, y)

def imageRotate(image, angle):
    return _ExactImage.imageRotate(image, angle)

def imageFlipX(image):
    return _ExactImage.imageFlipX(image)

def imageFlipY(image):
    return _ExactImage.imageFlipY(image)

def imageScale(image, factor, yfactor=.0):
    return _ExactImage.imageScale(image, factor, yfactor)

def imageNearestScale(image, factor, yfactor=.0):
    return _ExactImage.imageNearestScale(image, factor, yfactor)

def imageBoxScale(image, factor, yfactor=.0):
    return _ExactImage.imageBoxScale(image, factor, yfactor)

def imageBilinearScale(image, factor, yfactor=.0):
    return _ExactImage.imageBilinearScale(image, factor, yfactor)

def imageThumbnailScale(image, factor, yfactor=.0):
    return _ExactImage.imageThumbnailScale(image, factor, yfactor)

def imageCrop(image, x, y, w, h):
    return _ExactImage.imageCrop(image, x, y, w, h)

def imageFastAutoCrop(image):
    return _ExactImage.imageFastAutoCrop(image)

def setForegroundColor(r, g, b, a=1.0):
    return _ExactImage.setForegroundColor(r, g, b, a)

def setBackgroundColor(r, g, b, a=1.0):
    return _ExactImage.setBackgroundColor(r, g, b, a)

def imageNormalize(image):
    return _ExactImage.imageNormalize(image)

def imageInvert(image):
    return _ExactImage.imageInvert(image)

def imageBrightnessContrastGamma(image, brightness, contrast, gamma):
    return _ExactImage.imageBrightnessContrastGamma(image, brightness, contrast, gamma)

def imageHueSaturationLightness(image, hue, saturation, lightness):
    return _ExactImage.imageHueSaturationLightness(image, hue, saturation, lightness)

def setLineWidth(width):
    return _ExactImage.setLineWidth(width)

def imageDrawLine(image, x, y, x2, y2):
    return _ExactImage.imageDrawLine(image, x, y, x2, y2)

def imageDrawRectangle(image, x, y, x2, y2):
    return _ExactImage.imageDrawRectangle(image, x, y, x2, y2)

def newPath():
    return _ExactImage.newPath()

def deletePath(path):
    return _ExactImage.deletePath(path)

def pathClear(path):
    return _ExactImage.pathClear(path)

def pathMoveTo(path, x, y):
    return _ExactImage.pathMoveTo(path, x, y)

def pathLineTo(path, x, y):
    return _ExactImage.pathLineTo(path, x, y)

def pathCurveTo(path, x, y, x2, y2):
    return _ExactImage.pathCurveTo(path, x, y, x2, y2)

def pathQuadCurveTo(path, x, y, x2, y2, x3, y3):
    return _ExactImage.pathQuadCurveTo(path, x, y, x2, y2, x3, y3)

def pathClose(path):
    return _ExactImage.pathClose(path)

def pathStroke(path, image):
    return _ExactImage.pathStroke(path, image)

def pathFill(path, image):
    return _ExactImage.pathFill(path, image)

def imageDrawText(image, x, y, text, height, fontfile=None):
    return _ExactImage.imageDrawText(image, x, y, text, height, fontfile)

def imageDrawTextOnPath(image, path, text, height, fontfile=None):
    return _ExactImage.imageDrawTextOnPath(image, path, text, height, fontfile)

def imageOptimize2BW(image, low=0, high=255, threshold=170, radius=3, standard_deviation=2.3, target_dpi=0):
    return _ExactImage.imageOptimize2BW(image, low, high, threshold, radius, standard_deviation, target_dpi)

def imageIsEmpty(image, percent, margin):
    return _ExactImage.imageIsEmpty(image, percent, margin)

def imageDecodeBarcodes(image, codes, min_length=0, max_length=0, multiple=0, line_skip=8, directions=0xf):
    return _ExactImage.imageDecodeBarcodes(image, codes, min_length, max_length, multiple, line_skip, directions)

def newContours(image, low=0, high=0, threshold=0, radius=3, standard_deviation=2.1):
    return _ExactImage.newContours(image, low, high, threshold, radius, standard_deviation)

def deleteContours(contours):
    return _ExactImage.deleteContours(contours)

def newRepresentation(logo_contours, max_feature_no=10, max_avg_tolerance=20, reduction_shift=3, maximum_angle=0.0, angle_step=0.0):
    return _ExactImage.newRepresentation(logo_contours, max_feature_no, max_avg_tolerance, reduction_shift, maximum_angle, angle_step)

def deleteRepresentation(representation):
    return _ExactImage.deleteRepresentation(representation)

def matchingScore(representation, image_contours):
    return _ExactImage.matchingScore(representation, image_contours)

def logoAngle(representation):
    return _ExactImage.logoAngle(representation)

def logoTranslationX(representation):
    return _ExactImage.logoTranslationX(representation)

def logoTranslationY(representation):
    return _ExactImage.logoTranslationY(representation)

def inverseLogoTranslationX(representation, image):
    return _ExactImage.inverseLogoTranslationX(representation, image)

def inverseLogoTranslationY(representation, image):
    return _ExactImage.inverseLogoTranslationY(representation, image)

def drawMatchedContours(representation, image):
    return _ExactImage.drawMatchedContours(representation, image)


