| 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> |