1page.title=MonkeyImage 2parent.title=monkeyrunner 3parent.link=index.html 4@jd:body 5<style> 6 h4.jd-details-title {background-color: #DEE8F1;} 7</style> 8 9<p> 10 A monkeyrunner class to hold an image of the device or emulator's screen. The image is 11 copied from the screen buffer during a screenshot. This object's methods allow you to 12 convert the image into various storage formats, write the image to a file, copy parts of 13 the image, and compare this object to other <code>MonkeyImage</code> objects. 14</p> 15<p> 16 You do not need to create new instances of <code>MonkeyImage</code>. Instead, use 17<code><a href="{@docRoot}tools/help/MonkeyDevice.html#takeSnapshot"> 18MonkeyDevice.takeSnapshot()</a></code> to create a new instance from a screenshot. For example, use: 19</p> 20<pre> 21newimage = MonkeyDevice.takeSnapshot() 22</pre> 23<h2>Summary</h2> 24<table id="pubmethods" class="jd-sumtable"> 25 <tr> 26 <th colspan="12" style="background-color: #E2E2E2">Methods</th> 27 </tr> 28 <tr class="api" > 29 <td class="jd-typecol"> 30 <nobr> 31 <em>string</em> 32 </nobr> 33 </td> 34 <td class="jd-linkcol" width="100%"> 35 <nobr> 36 <span class="sympad"> 37 <a href="#convertToBytes">convertToBytes</a> 38 </span> 39 (<em>string</em> format) 40 </nobr> 41 <div class="jd-descrdiv"> 42 Converts the current image to a particular format and returns it as a 43 <em>string</em> that you can then access as an <em>iterable</em> of binary bytes. 44 </div> 45 </td> 46 </tr> 47 <tr class="api" > 48 <td class="jd-typecol"> 49 <nobr> 50 <em>tuple</em> 51 </nobr> 52 </td> 53 <td class="jd-linkcol" width="100%"> 54 <nobr> 55 <span class="sympad"> 56 <a href="#getRawPixel">getRawPixel</a> 57 </span> 58 (<em>integer</em> x, 59 <em>integer</em> y) 60 </nobr> 61 <div class="jd-descrdiv"> 62 Returns the single pixel at the image location (x,y), as an 63 a <em>tuple</em> of <em>integer</em>, in the form (a,r,g,b). 64 </div> 65 </td> 66 </tr> 67 <tr class="api" > 68 <td class="jd-typecol"> 69 <nobr> 70 <em>integer</em> 71 </nobr> 72 </td> 73 <td class="jd-linkcol" width="100%"> 74 <nobr> 75 <span class="sympad"> 76 <a href="#getRawPixelInt">getRawPixelInt</a> 77 </span> 78 (<em>integer</em> x, 79 <em>integer</em> y) 80 </nobr> 81 <div class="jd-descrdiv"> 82 Returns the single pixel at the image location (x,y), as 83 a 32-bit <em>integer</em>. 84 </div> 85 </td> 86 </tr> 87 <tr class="api" > 88 <td class="jd-typecol"> 89 <nobr> 90 <code> 91 <a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a> 92 </code> 93 </nobr> 94 </td> 95 <td class="jd-linkcol" width="100%"> 96 <nobr> 97 <span class="sympad"> 98 <a href="#getSubImage">getSubImage</a> 99 </span> 100 (<em>tuple</em> rect) 101 </nobr> 102 <div class="jd-descrdiv"> 103 Creates a new <code>MonkeyImage</code> object from a rectangular selection of the 104 current image. 105 </div> 106 </td> 107 </tr> 108 <tr class="api" > 109 <td class="jd-typecol"> 110 <nobr> 111 <em>boolean</em> 112 </nobr> 113 </td> 114 <td class="jd-linkcol" width="100%"> 115 <nobr> 116 <span class="sympad"> 117 <a href="#sameAs">sameAs</a> 118 </span> 119 (<code><a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a></code> 120 other, 121 <em>float</em> percent) 122 </nobr> 123 <div class="jd-descrdiv"> 124 Compares this <code>MonkeyImage</code> object to another and returns the result of 125 the comparison. The <code>percent</code> argument specifies the percentage 126 difference that is allowed for the two images to be "equal". 127 </div> 128 </td> 129 </tr> 130 <tr class="api" > 131 <td class="jd-typecol"> 132 <nobr> 133 <em>void</em> 134 </nobr> 135 </td> 136 <td class="jd-linkcol" width="100%"> 137 <nobr> 138 <span class="sympad"> 139 <a href="#writeToFile">writeToFile</a> 140 </span> 141 (<em>string</em> path, 142 <em>string</em> format) 143 </nobr> 144 <div class="jd-descrdiv"> 145 Writes the current image to the file specified by <code>filename</code>, in the 146 format specified by <code>format</code>. 147 </div> 148 </td> 149 </tr> 150</table> 151<!-- ========= METHOD DETAIL ======== --> 152<!-- Public methods --> 153<h2>Public Methods</h2> 154<A NAME="convertToBytes"></A> 155<div class="jd-details api "> 156 <h4 class="jd-details-title"> 157 <span class="normal"> 158 <em>string</em> 159 </span> 160 <span class="sympad">convertToBytes</span> 161 <span class="normal"> 162 ( 163 <em>string</em> format) 164 </span> 165 </h4> 166 <div class="jd-details-descr"> 167 168 <div class="jd-tagdata jd-tagdescr"> 169 <p> 170 Converts the current image to a particular format and returns it as a <em>string</em> 171 that you can then access as an <em>iterable</em> of binary bytes. 172 </p> 173 </div> 174 <div class="jd-tagdata"> 175 <h5 class="jd-tagtitle">Arguments</h5> 176 <table class="jd-tagtable"> 177 <tr> 178 <th>format</th> 179 <td> 180 The desired output format. All of the common raster output formats are supported. 181 The default value is "png" (Portable Network Graphics). 182 </td> 183 </tr> 184 </table> 185 </div> 186</div> 187</div> 188<A NAME="getRawPixel"></A> 189<div class="jd-details api "> 190 <h4 class="jd-details-title"> 191 <span class="normal"> 192 <em>tuple</em> 193 </span> 194 <span class="sympad">getRawPixel</span> 195 <span class="normal"> 196 (<em>integer</em> x, 197 <em>integer</em> y) 198 </span> 199 </h4> 200 <div class="jd-details-descr"> 201 202 <div class="jd-tagdata jd-tagdescr"> 203 <p> 204 Returns the single pixel at the image location (x,y), as an 205 a <em>tuple</em> of <em>integer</em>, in the form (a,r,g,b). 206 </p> 207 </div> 208 <div class="jd-tagdata"> 209 <h5 class="jd-tagtitle">Arguments</h5> 210 <table class="jd-tagtable"> 211 <tr> 212 <th>x</th> 213 <td> 214 The horizontal position of the pixel, starting with 0 at the left of the screen in the 215 orientation it had when the screenshot was taken. 216 </td> 217 </tr> 218 <tr> 219 <th>y</th> 220 <td> 221 The vertical position of the pixel, starting with 0 at the top of the screen in the 222 orientation it had when the screenshot was taken. 223 </td> 224 </tr> 225 </table> 226 </div> 227 <div class="jd-tagdata"> 228 <h5 class="jd-tagtitle">Returns</h5> 229 <ul class="nolist"> 230 <li> 231 A tuple of integers representing the pixel, in the form (a,r,g,b) where 232 a is the alpha channel value, and r, g, and b are the red, green, and blue values, 233 respectively. 234 </li> 235 </ul> 236 </div> 237 </div> 238</div> 239<A NAME="getRawPixelInt"></A> 240<div class="jd-details api "> 241 <h4 class="jd-details-title"> 242 <span class="normal"> 243 <em>tuple</em> 244 </span> 245 <span class="sympad">getRawPixelInt</span> 246 <span class="normal"> 247 (<em>integer</em> x, 248 <em>integer</em> y) 249 </span> 250 </h4> 251 <div class="jd-details-descr"> 252 253 <div class="jd-tagdata jd-tagdescr"> 254 <p> 255 Returns the single pixel at the image location (x,y), as an 256 an <em>integer</em>. Use this method to economize on memory. 257 </p> 258 </div> 259 <div class="jd-tagdata"> 260 <h5 class="jd-tagtitle">Arguments</h5> 261 <table class="jd-tagtable"> 262 <tr> 263 <th>x</th> 264 <td> 265 The horizontal position of the pixel, starting with 0 at the left of the screen in the 266 orientation it had when the screenshot was taken. 267 </td> 268 </tr> 269 <tr> 270 <th>y</th> 271 <td> 272 The vertical position of the pixel, starting with 0 at the top of the screen in the 273 orientation it had when the screenshot was taken. 274 </td> 275 </tr> 276 </table> 277 </div> 278 <div class="jd-tagdata"> 279 <h5 class="jd-tagtitle">Returns</h5> 280 <ul class="nolist"> 281 <li> 282 The a,r,g, and b values of the pixel as 8-bit values combined into a 32-bit 283 integer, with a as the leftmost 8 bits, r the next rightmost, and so forth. 284 </li> 285 </ul> 286 </div> 287 </div> 288</div> 289<A NAME="getSubImage"></A> 290<div class="jd-details api "> 291 <h4 class="jd-details-title"> 292 <span class="normal"> 293 <code> 294 <a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a> 295 </code> 296 </span> 297 <span class="sympad">getSubImage</span> 298 <span class="normal"> 299 (<em>tuple</em> rect) 300 </span> 301 </h4> 302 <div class="jd-details-descr"> 303 304 <div class="jd-tagdata jd-tagdescr"> 305 <p> 306 Creates a new <code>MonkeyImage</code> object from a rectangular selection of the 307 current image. 308 </p> 309 </div> 310 <div class="jd-tagdata"> 311 <h5 class="jd-tagtitle">Arguments</h5> 312 <table class="jd-tagtable"> 313 <tr> 314 <th>rect</th> 315 <td> 316 A tuple (x, y, w, h) specifying the selection. x and y specify the 0-based pixel 317 position of the upper left-hand corner of the selection. w specifies the width of the 318 region, and h specifies its height, both in units of pixels. 319 <p> 320 The image's orientation is the same as the screen orientation at the time the 321 screenshot was made. 322 </p> 323 </td> 324 </tr> 325 </table> 326 </div> 327 <div class="jd-tagdata"> 328 <h5 class="jd-tagtitle">Returns</h5> 329 <ul class="nolist"> 330 <li> 331 A new <code>MonkeyImage</code> object containing the selection. 332 </li> 333 </ul> 334 </div> 335 </div> 336</div> 337<A NAME="sameAs"></A> 338<div class="jd-details api "> 339 <h4 class="jd-details-title"> 340 <span class="normal"> 341 <em>boolean</em> 342 </span> 343 <span class="sympad">sameAs</span> 344 <span class="normal"> 345 ( 346 <code> 347 <a href="{@docRoot}tools/help/MonkeyImage.html">MonkeyImage</a> 348 </code> otherImage, 349 <em>float</em> percent 350 ) 351 </span> 352 </h4> 353 <div class="jd-details-descr"> 354 355 <div class="jd-tagdata jd-tagdescr"> 356 <p> 357 Compares this <code>MonkeyImage</code> object to another and returns the result of 358 the comparison. The <code>percent</code> argument specifies the percentage 359 difference that is allowed for the two images to be "equal". 360 </p> 361 </div> 362 <div class="jd-tagdata"> 363 <h5 class="jd-tagtitle">Arguments</h5> 364 <table class="jd-tagtable"> 365 <tr> 366 <th>other</th> 367 <td> 368 Another <code>MonkeyImage</code> object to compare to this one. 369 </td> 370 </tr> 371 <tr> 372 <th> 373 percent 374 </th> 375 <td> 376 A float in the range 0.0 to 1.0, inclusive, indicating 377 the percentage of pixels that need to be the same for the method to return 378 <code>true</code>. The default is 1.0, indicating that all the pixels 379 must match. 380 </td> 381 </tr> 382 </table> 383 </div> 384 <div class="jd-tagdata"> 385 <h5 class="jd-tagtitle">Returns</h5> 386 <ul class="nolist"> 387 <li> 388 Boolean <code>true</code> if the images match, or boolean <code>false</code> otherwise. 389 </li> 390 </ul> 391 </div> 392 </div> 393</div> 394<A NAME="writeToFile"></A> 395<div class="jd-details api "> 396 <h4 class="jd-details-title"> 397 <span class="normal"> 398 void 399 </span> 400 <span class="sympad">writeToFile</span> 401 <span class="normal"> 402 (<em>string</em> filename, 403 <em>string</em> format) 404 </span> 405 </h4> 406 <div class="jd-details-descr"> 407 408 <div class="jd-tagdata jd-tagdescr"> 409 <p> 410 Writes the current image to the file specified by <code>filename</code>, in the 411 format specified by <code>format</code>. 412 </p> 413 </div> 414 <div class="jd-tagdata"> 415 <h5 class="jd-tagtitle">Arguments</h5> 416 <table class="jd-tagtable"> 417 <tr> 418 <th>path</th> 419 <td> 420 The fully-qualified filename and extension of the output file. 421 </td> 422 </tr> 423 <tr> 424 <th> 425 format 426 </th> 427 <td> 428 The output format to use for the file. If no format is provided, then the 429 method tries to guess the format from the filename's extension. If no 430 extension is provided and no format is specified, then the default format of 431 "png" (Portable Network Graphics) is used. 432 </td> 433 </tr> 434 </table> 435 </div> 436 </div> 437</div> 438