====== Image ====== This object represents an image. ===== Functions ===== ==== Image ==== Constructor function. === Syntax === var myObject = new Image(); var myObject = new Image(otherImage); var myObject = new Image(filename); === Arguments === - otherImage - (Image) other Image to copy - filename - (string) a valid image filename === Exceptions === * (ParameterTypeError) incorrect parameter type * (ParameterCountError) incorrect parameter count === Example === Create a empty Image. var myObject = new Image(); Create a Image representing a copy of **otherImage**. var myObject = new Image(otherImage); ==== takeScreenshot ==== Take a screenshot of the whole screen or only of **window** and store the result in a new Image. === Syntax === var myObject = Image.takeScreenshot(); var myObject = Image.takeScreenshot(window); === Arguments === - window - ([[en:code:core:window|Window]]) the window to screenshot === Exceptions === * (InvalidWindowError) invalid window ==== takeScreenshotUsingScreenIndex ==== Take a screenshot of one screen and store the result in a new Image. [//Added in Actionaz 3.7.0.//] === Syntax === var myObject = Image.takeScreenshotUsingScreenIndex(0); === Arguments === - screenIndex - (integer) the index of the screen to screenshot === Exceptions === * (InvalidScreenIndexError) invalid screen index ===== Methods ===== ==== clone ==== Returns a copy of this Image. === Syntax === myObject.clone(); === Returns === * (Image) a copy of this Image === Example === var copyOfMyObject = myObject.clone(); ==== equals ==== Returns true if this Image and another are referencing the same image. === Syntax === myObject.equals(other); === Arguments === - other - (Image) another Image === Returns === * (bool) true if **other** is referencing the same image === Example === if(myFirstObject.equals(mySecondObject)) //Do something ==== toString ==== Returns a string representing this Image. === Syntax === myObject.toString(); === Returns === * (string) a string representing this Image === Example === Console.print(myObject.toString()); === Notes === This method is automatically called when trying to convert a Image to a string. ==== setData ==== Sets the data of this Image. === Syntax === myObject.setData(data); === Arguments === - data - ([[en:code:core:rawdata|RawData]]) RawData of the image === Returns === * (Image) this Image === Exceptions === * (ImageDataError) invalid image data === Notes === Supported image formats are BMP, GIF, JPG, JPEG, PNG, PBM, PGM, PPM, TIFF, XBM and XPM. ==== data ==== Returns the data of this Image as [[en:code:core:rawdata|RawData]] in the BMP format. === Syntax === myObject.data(); === Returns === * ([[en:code:core:rawdata|RawData]]) this Image as RawData === Exceptions === * (ImageDataError) unable to get the image data ==== loadFromFile ==== Loads the Image from a file. === Syntax === myObject.loadFromFile(filename); === Arguments === - filename - (string) filename to load === Returns === * (Image) this Image === Exceptions === * (LoadImageError) unable to load the image === Notes === Supported image formats are BMP, GIF, JPG, JPEG, PNG, PBM, PGM, PPM, TIFF, XBM and XPM. ==== saveToFile ==== Saves the Image to a file. === Syntax === myObject.saveToFile(filename); === Arguments === - filename - (string) filename to save to === Returns === * (Image) this Image === Exceptions === * (SaveImageError) unable to save the image === Notes === Supported image formats are BMP, JPG, JPEG, PNG, PPM, TIFF, XBM and XPM. ==== applyFilter ==== Applies a filter on this Image. === Syntax === myObject.applyFilter(filter); myObject.applyFilter(filter, options); === Arguments === - filter - ([[#filter|Filter]]) the filter to use - options - (object) filter options * filterChannels - (string) the color channel(s) to perform the filtering on. A string consisting of zero or one entity of each of the characters r,g,b,a * filterBorderPolicy - (string) used with the convolution filter. Values are "mirror", "extend" or "wrap" * convolutionDivisor - (integer) the convolution divisor * convolutionBias - (integer) the convolution bias * radius - (number) the radius * force - (number) the force (use it, Luke!) * center - (object) the center * x - (integer) the x coordinate * y - (integer) the y coordinate === Returns === * (Image) this Image === Exceptions === * (ApplyFilterError) unable to apply the filter ==== pixel ==== Returns a pixel from this Image. === Syntax === myObject.pixel(x, y); === Arguments === - x - (integer) x coordinate of the pixel to return - y - (integer) y coordinate of the pixel to return === Returns === * ([[en:code:core:color|Color]]) the pixel ==== setPixel ==== Sets a pixel from this Image. === Syntax === myObject.pixel(x, y, color); myObject.pixel(x, y, colorString); myObject.pixel(x, y, red, green, blue); === Arguments === - x - (integer) x coordinate of the pixel to set - y - (integer) y coordinate of the pixel to set - color - ([[en:code:core:color|Color]]) color of the pixel to set - red - (integer) red value of the color to set - green - (integer) green value of the color to set - blue - (integer) blue value of the color to set === Returns === * (Image) this Image ==== mirror ==== Mirror this Image. === Syntax === myObject.mirror(mirrorOrientation); === Arguments === - mirrorOrientation - ([[#mirrororientation|MirrorOrientation]]) mirror orientation === Returns === * (Image) this Image ==== setSize ==== Resizes this Image. === Syntax === myObject.setSize(size); myObject.setSize(width, height); === Arguments === - size - ([[en:code:core:size|Size]]) the new Image size - width - (integer) the new width of this Image - height - (integer) the new height of this Image === Returns === * (Image) this Image ==== size ==== Returns the size of this Image. === Syntax === myObject.size(); === Returns === * ([[en:code:core:size|Size]]) the size of this Image ==== width ==== Returns the width of this Image. === Syntax === myObject.width(); === Returns === * (integer) the width of this Image ==== height ==== Returns the height of this Image. === Syntax === myObject.height(); === Returns === * (integer) the height of this Image ==== copy ==== Returns a copy of this Image or only a part of it. === Syntax === myObject.copy(); myObject.copy(rect); === Arguments === - rect - ([[en:code:core:rect|Rect]]) the section of this Image to copy === Returns === * (Image) a new copy of this Image ==== findSubImage ==== Searches for another image contained in this one. //Added in Actionaz 3.0.1.// === Syntax === myObject.findSubImage(otherImage); myObject.findSubImage(otherImage, options); === Arguments === - otherImage - (Image) the Image to find - options - (object) search options * confidenceMinimum - (integer) the minimum confidence percentage, 100 means perfect match (default: 70) * downPyramidCount - (integer) the number of pyramids to use. A pyramid is a subdivision of the image used to accelerate the search. Choose 1 here if the searched image is not very different from this image. (default: 2) * method - ([[#method|Method]]) the search method to use (default: CorrelationCoefficient) [//Added in Actionaz 3.7.0.//] === Returns === * (object) the matching point, or null if no matching point can be found * position - ([[en:code:core:point|Point]]) the matching image center * confidence - (integer) the confidence percentage === Exceptions === * (FindSubImageError) an error occured while searching for a sub-image * (ParameterTypeError) incorrect parameter type === Example === //Searches for an object on the screen var screenShot = Image.takeScreenshot(); var imageToFind = new Image("object.png"); var searchResult = screenShot.findSubImage(imageToFind); if(searchResult) Console.print("Matching image found, position: " + searchResult.position + ", confidence: " + searchResult.confidence); else Console.print("No matching image found."); ==== findSubImages ==== Searches for images contained in this one. //Added in Actionaz 3.0.1.// === Syntax === myObject.findSubImages(otherImage); myObject.findSubImages(otherImage, options); === Arguments === - otherImage - (Image) the Image to find - options - (object) search options * confidenceMinimum - (integer) the minimum confidence percentage, 100 means perfect match (default: 70) * downPyramidCount - (integer) the number of pyramids to use. A pyramid is a subdivision of the image used to accelerate the search. Choose 1 here if the searched image is not very different from this image. (default: 2) * searchExpansion - (integer) the number of pixels to shift when searching for another matching image (default: 15) * maximumMatches - (integer) the maximal number of matches (default: 10) * method - ([[#method|Method]]) the search method to use (default: CorrelationCoefficient) [//Added in Actionaz 3.7.0.//] === Returns === * (array of objects) the matching points, or null if no matching point can be found * position - ([[en:code:core:point|Point]]) the matching image center * confidence - (integer) the confidence percentage === Exceptions === * (FindSubImageError) an error occured while searching for a sub-image * (ParameterTypeError) incorrect parameter type === Example === //Searches for objects on the screen var screenShot = Image.takeScreenshot(); var imageToFind = new Image("object.png"); var searchResult = screenShot.findSubImages(imageToFind); if(searchResult) { Console.print("Matching images found\n"); for(var i = 0; i < searchResult.length; ++i) { Console.print("position: " + searchResult[i].position + ", confidence: " + searchResult[i].confidence + "\n"); } } else Console.print("No matching images found."); ==== findSubImageAsync ==== Searches for another image contained in this one in asynchronous mode. //Added in Actionaz 3.0.1.// === Syntax === myObject.findSubImageAsync(otherImage, callback); myObject.findSubImageAsync(otherImage, callback, options); === Arguments === - otherImage - (Image) the Image to find - callback(object) - (function) the function that will be called when the search ends * position - ([[en:code:core:point|Point]]) the matching image center * confidence - (integer) the confidence percentage - options - (object) search options * confidenceMinimum - (integer) the minimum confidence percentage, 100 means perfect match (default: 70) * downPyramidCount - (integer) the number of pyramids to use. A pyramid is a subdivision of the image used to accelerate the search. Choose 1 here if the searched image is not very different from this image. (default: 2) * searchExpansion - (integer) the number of pixels to shift when searching for another matching image (default: 15) * method - ([[#method|Method]]) the search method to use (default: CorrelationCoefficient) [//Added in Actionaz 3.7.0.//] === Returns === * (Image) this Image === Exceptions === * (FindSubImageError) an error occured while searching for a sub-image * (ParameterTypeError) incorrect parameter type === Example === //Searches for an object on the screen var screenShot = Image.takeScreenshot(); var imageToFind = new Image("object.png"); screenShot.findSubImageAsync(imageToFind, function(searchResult) { if(searchResult) Console.print("Matching image found, position: " + searchResult.position + ", confidence: " + searchResult.confidence); else Console.print("No matching image found."); }); ==== findSubImagesAsync ==== Searches for images contained in this one in asynchronous mode. //Added in Actionaz 3.0.1.// === Syntax === myObject.findSubImagesAsync(otherImage, callback); myObject.findSubImagesAsync(otherImage, callback, options); === Arguments === - otherImage - (Image) the Image to find - callback(object) - (function) the function that will be called when the search ends * position - ([[en:code:core:point|Point]]) the matching image center * confidence - (integer) the confidence percentage - options - (object) search options * confidenceMinimum - (integer) the minimum confidence percentage, 100 means perfect match (default: 70) * downPyramidCount - (integer) the number of pyramids to use. A pyramid is a subdivision of the image used to accelerate the search. Choose 1 here if the searched image is not very different from this image. (default: 2) * searchExpansion - (integer) the number of pixels to shift when searching for another matching image (default: 15) * maximumMatches - (integer) the maximal number of matches (default: 10) * method - ([[#method|Method]]) the search method to use (default: CorrelationCoefficient) [//Added in Actionaz 3.7.0.//] === Returns === * (Image) this Image === Exceptions === * (FindSubImageError) an error occured while searching for a sub-image * (ParameterTypeError) incorrect parameter type === Example === //Searches for objects on the screen var screenShot = Image.takeScreenshot(); var imageToFind = new Image("object.png"); screenShot.findSubImagesAsync(imageToFind, function(searchResult) { if(searchResult) { Console.print("Matching images found\n"); for(var i = 0; i < searchResult.length; ++i) { Console.print("position: " + searchResult[i].position + ", confidence: " + searchResult[i].confidence + "\n"); } } else Console.print("No matching images found."); }); ===== Enumerations ===== ==== Filter ==== Image filters. === Values === - ConvolutionFilter: the convolution filter - GaussianBlur: a gaussian blur - Defocus: blurs the image - Highlight: highlight the image - Sharpen: sharpens the image - SharpenMore: sharpens the image - SharpenEvenMore: sharpens the image - EdgeDetect: edge detection filter - BigEdge: edge detection filter (thicker edges) - Emboss: embosses the image (no color preservation) - EmbossColor: embosses the image (color preservation) - Negative: negates a color channel - RemoveChannel: remove a color channel - Punch: distorts the image ==== MirrorOrientation ==== Mirror orientation. === Values === - Vertical: a vertical mirror - Horizontal: an horizontal mirror ==== Method ==== Search method. [//Added in Actionaz 3.7.0.//] === Values === - CorrelationCoefficient: correlation coefficient, best for most use cases - CrossCorrelation: cross correlation - SquaredDifference: squared difference