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