| page.title=MonkeyImage | |
| parent.title=monkeyrunner | |
| parent.link=index.html | |
| @jd:body | |
| <style> | |
| h4.jd-details-title {background-color: #DEE8F1;} | |
| </style> | |
| <p> | |
| A monkeyrunner class to hold an image of the device or emulator's screen. The image is | |
| copied from the screen buffer during a screenshot. This object's methods allow you to | |
| convert the image into various storage formats, write the image to a file, copy parts of | |
| the image, and compare this object to other <code>MonkeyImage</code> objects. | |
| </p> | |
| <p> | |
| You do not need to create new instances of <code>MonkeyImage</code>. Instead, use | |
| <code><a href="{@docRoot}tools/help/MonkeyDevice.html#takeSnapshot"> | |
| MonkeyDevice.takeSnapshot()</a></code> to create a new instance from a screenshot. For example, use: | |
| </p> | |
| <pre> | |
| newimage = MonkeyDevice.takeSnapshot() | |
| </pre> | |
| <h2>Summary</h2> | |
| <table id="pubmethods" class="jd-sumtable"> | |
| <tr> | |
| <th colspan="12" style="background-color: #E2E2E2">Methods</th> | |
| </tr> | |
| <tr class="api" > | |
| <td class="jd-typecol"> | |
| <nobr> | |
| <em>string</em> | |
| </nobr> | |
| </td> | |
| <td class="jd-linkcol" width="100%"> | |
| <nobr> | |
| <span class="sympad"> | |
| <a href="#convertToBytes">convertToBytes</a> | |
| </span> | |
| (<em>string</em> format) | |
| </nobr> | |
| <div class="jd-descrdiv"> | |
| Converts the current image to a particular format and returns it as a | |
| <em>string</em> that you can then access as an <em>iterable</em> of binary bytes. | |
| </div> | |
| </td> | |
| </tr> | |
| <tr class="api" > | |
| <td class="jd-typecol"> | |
| <nobr> | |
| <em>tuple</em> | |
| </nobr> | |
| </td> | |
| <td class="jd-linkcol" width="100%"> | |
| <nobr> | |
| <span class="sympad"> | |
| <a href="#getRawPixel">getRawPixel</a> | |
| </span> | |
| (<em>integer</em> x, | |
| <em>integer</em> y) | |
| </nobr> | |
| <div class="jd-descrdiv"> | |
| Returns the single pixel at the image location (x,y), as an | |
| a <em>tuple</em> of <em>integer</em>, in the form (a,r,g,b). | |
| </div> | |
| </td> | |
| </tr> | |
| <tr class="api" > | |
| <td class="jd-typecol"> | |
| <nobr> | |
| <em>integer</em> | |
| </nobr> | |
| </td> | |
| <td class="jd-linkcol" width="100%"> | |
| <nobr> | |
| <span class="sympad"> | |
| <a href="#getRawPixelInt">getRawPixelInt</a> | |
| </span> | |
| (<em>integer</em> x, | |
| <em>integer</em> y) | |
| </nobr> | |
| <div class="jd-descrdiv"> | |
| Returns the single pixel at the image location (x,y), as | |
| a 32-bit <em>integer</em>. | |
| </div> | |
| </td> | |
| </tr> | |
| <tr class="api" > | |
| <td class="jd-typecol"> | |
| <nobr> | |
| <code> | |
| <a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a> | |
| </code> | |
| </nobr> | |
| </td> | |
| <td class="jd-linkcol" width="100%"> | |
| <nobr> | |
| <span class="sympad"> | |
| <a href="#getSubImage">getSubImage</a> | |
| </span> | |
| (<em>tuple</em> rect) | |
| </nobr> | |
| <div class="jd-descrdiv"> | |
| Creates a new <code>MonkeyImage</code> object from a rectangular selection of the | |
| current image. | |
| </div> | |
| </td> | |
| </tr> | |
| <tr class="api" > | |
| <td class="jd-typecol"> | |
| <nobr> | |
| <em>boolean</em> | |
| </nobr> | |
| </td> | |
| <td class="jd-linkcol" width="100%"> | |
| <nobr> | |
| <span class="sympad"> | |
| <a href="#sameAs">sameAs</a> | |
| </span> | |
| (<code><a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a></code> | |
| other, | |
| <em>float</em> percent) | |
| </nobr> | |
| <div class="jd-descrdiv"> | |
| Compares this <code>MonkeyImage</code> object to another and returns the result of | |
| the comparison. The <code>percent</code> argument specifies the percentage | |
| difference that is allowed for the two images to be "equal". | |
| </div> | |
| </td> | |
| </tr> | |
| <tr class="api" > | |
| <td class="jd-typecol"> | |
| <nobr> | |
| <em>void</em> | |
| </nobr> | |
| </td> | |
| <td class="jd-linkcol" width="100%"> | |
| <nobr> | |
| <span class="sympad"> | |
| <a href="#writeToFile">writeToFile</a> | |
| </span> | |
| (<em>string</em> path, | |
| <em>string</em> format) | |
| </nobr> | |
| <div class="jd-descrdiv"> | |
| Writes the current image to the file specified by <code>filename</code>, in the | |
| format specified by <code>format</code>. | |
| </div> | |
| </td> | |
| </tr> | |
| </table> | |
| <!-- ========= METHOD DETAIL ======== --> | |
| <!-- Public methods --> | |
| <h2>Public Methods</h2> | |
| <A NAME="convertToBytes"></A> | |
| <div class="jd-details api "> | |
| <h4 class="jd-details-title"> | |
| <span class="normal"> | |
| <em>string</em> | |
| </span> | |
| <span class="sympad">convertToBytes</span> | |
| <span class="normal"> | |
| ( | |
| <em>string</em> format) | |
| </span> | |
| </h4> | |
| <div class="jd-details-descr"> | |
| <div class="jd-tagdata jd-tagdescr"> | |
| <p> | |
| Converts the current image to a particular format and returns it as a <em>string</em> | |
| that you can then access as an <em>iterable</em> of binary bytes. | |
| </p> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Arguments</h5> | |
| <table class="jd-tagtable"> | |
| <tr> | |
| <th>format</th> | |
| <td> | |
| The desired output format. All of the common raster output formats are supported. | |
| The default value is "png" (Portable Network Graphics). | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <A NAME="getRawPixel"></A> | |
| <div class="jd-details api "> | |
| <h4 class="jd-details-title"> | |
| <span class="normal"> | |
| <em>tuple</em> | |
| </span> | |
| <span class="sympad">getRawPixel</span> | |
| <span class="normal"> | |
| (<em>integer</em> x, | |
| <em>integer</em> y) | |
| </span> | |
| </h4> | |
| <div class="jd-details-descr"> | |
| <div class="jd-tagdata jd-tagdescr"> | |
| <p> | |
| Returns the single pixel at the image location (x,y), as an | |
| a <em>tuple</em> of <em>integer</em>, in the form (a,r,g,b). | |
| </p> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Arguments</h5> | |
| <table class="jd-tagtable"> | |
| <tr> | |
| <th>x</th> | |
| <td> | |
| The horizontal position of the pixel, starting with 0 at the left of the screen in the | |
| orientation it had when the screenshot was taken. | |
| </td> | |
| </tr> | |
| <tr> | |
| <th>y</th> | |
| <td> | |
| The vertical position of the pixel, starting with 0 at the top of the screen in the | |
| orientation it had when the screenshot was taken. | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Returns</h5> | |
| <ul class="nolist"> | |
| <li> | |
| A tuple of integers representing the pixel, in the form (a,r,g,b) where | |
| a is the alpha channel value, and r, g, and b are the red, green, and blue values, | |
| respectively. | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <A NAME="getRawPixelInt"></A> | |
| <div class="jd-details api "> | |
| <h4 class="jd-details-title"> | |
| <span class="normal"> | |
| <em>tuple</em> | |
| </span> | |
| <span class="sympad">getRawPixelInt</span> | |
| <span class="normal"> | |
| (<em>integer</em> x, | |
| <em>integer</em> y) | |
| </span> | |
| </h4> | |
| <div class="jd-details-descr"> | |
| <div class="jd-tagdata jd-tagdescr"> | |
| <p> | |
| Returns the single pixel at the image location (x,y), as an | |
| an <em>integer</em>. Use this method to economize on memory. | |
| </p> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Arguments</h5> | |
| <table class="jd-tagtable"> | |
| <tr> | |
| <th>x</th> | |
| <td> | |
| The horizontal position of the pixel, starting with 0 at the left of the screen in the | |
| orientation it had when the screenshot was taken. | |
| </td> | |
| </tr> | |
| <tr> | |
| <th>y</th> | |
| <td> | |
| The vertical position of the pixel, starting with 0 at the top of the screen in the | |
| orientation it had when the screenshot was taken. | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Returns</h5> | |
| <ul class="nolist"> | |
| <li> | |
| The a,r,g, and b values of the pixel as 8-bit values combined into a 32-bit | |
| integer, with a as the leftmost 8 bits, r the next rightmost, and so forth. | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <A NAME="getSubImage"></A> | |
| <div class="jd-details api "> | |
| <h4 class="jd-details-title"> | |
| <span class="normal"> | |
| <code> | |
| <a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a> | |
| </code> | |
| </span> | |
| <span class="sympad">getSubImage</span> | |
| <span class="normal"> | |
| (<em>tuple</em> rect) | |
| </span> | |
| </h4> | |
| <div class="jd-details-descr"> | |
| <div class="jd-tagdata jd-tagdescr"> | |
| <p> | |
| Creates a new <code>MonkeyImage</code> object from a rectangular selection of the | |
| current image. | |
| </p> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Arguments</h5> | |
| <table class="jd-tagtable"> | |
| <tr> | |
| <th>rect</th> | |
| <td> | |
| A tuple (x, y, w, h) specifying the selection. x and y specify the 0-based pixel | |
| position of the upper left-hand corner of the selection. w specifies the width of the | |
| region, and h specifies its height, both in units of pixels. | |
| <p> | |
| The image's orientation is the same as the screen orientation at the time the | |
| screenshot was made. | |
| </p> | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Returns</h5> | |
| <ul class="nolist"> | |
| <li> | |
| A new <code>MonkeyImage</code> object containing the selection. | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <A NAME="sameAs"></A> | |
| <div class="jd-details api "> | |
| <h4 class="jd-details-title"> | |
| <span class="normal"> | |
| <em>boolean</em> | |
| </span> | |
| <span class="sympad">sameAs</span> | |
| <span class="normal"> | |
| ( | |
| <code> | |
| <a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a> | |
| </code> otherImage, | |
| <em>float</em> percent | |
| ) | |
| </span> | |
| </h4> | |
| <div class="jd-details-descr"> | |
| <div class="jd-tagdata jd-tagdescr"> | |
| <p> | |
| Compares this <code>MonkeyImage</code> object to another and returns the result of | |
| the comparison. The <code>percent</code> argument specifies the percentage | |
| difference that is allowed for the two images to be "equal". | |
| </p> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Arguments</h5> | |
| <table class="jd-tagtable"> | |
| <tr> | |
| <th>other</th> | |
| <td> | |
| Another <code>MonkeyImage</code> object to compare to this one. | |
| </td> | |
| </tr> | |
| <tr> | |
| <th> | |
| percent | |
| </th> | |
| <td> | |
| A float in the range 0.0 to 1.0, inclusive, indicating | |
| the percentage of pixels that need to be the same for the method to return | |
| <code>true</code>. The default is 1.0, indicating that all the pixels | |
| must match. | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Returns</h5> | |
| <ul class="nolist"> | |
| <li> | |
| Boolean <code>true</code> if the images match, or boolean <code>false</code> otherwise. | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <A NAME="writeToFile"></A> | |
| <div class="jd-details api "> | |
| <h4 class="jd-details-title"> | |
| <span class="normal"> | |
| void | |
| </span> | |
| <span class="sympad">writeToFile</span> | |
| <span class="normal"> | |
| (<em>string</em> filename, | |
| <em>string</em> format) | |
| </span> | |
| </h4> | |
| <div class="jd-details-descr"> | |
| <div class="jd-tagdata jd-tagdescr"> | |
| <p> | |
| Writes the current image to the file specified by <code>filename</code>, in the | |
| format specified by <code>format</code>. | |
| </p> | |
| </div> | |
| <div class="jd-tagdata"> | |
| <h5 class="jd-tagtitle">Arguments</h5> | |
| <table class="jd-tagtable"> | |
| <tr> | |
| <th>path</th> | |
| <td> | |
| The fully-qualified filename and extension of the output file. | |
| </td> | |
| </tr> | |
| <tr> | |
| <th> | |
| format | |
| </th> | |
| <td> | |
| The output format to use for the file. If no format is provided, then the | |
| method tries to guess the format from the filename's extension. If no | |
| extension is provided and no format is specified, then the default format of | |
| "png" (Portable Network Graphics) is used. | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> |