• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1SkPixmap Reference
2===
3
4
5<a name='SkPixmap'></a>
6
7---
8
9<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
10class <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> {
11
12    <a href='#SkPixmap_empty_constructor'>SkPixmap()</a>;
13    <a href='#SkPixmap_const_SkImageInfo_const_star'>SkPixmap</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>);
14    void <a href='#SkPixmap_reset'>reset()</a>;
15    void <a href='#SkPixmap_reset'>reset</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>);
16    void <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkPixmap_colorSpace'>colorSpace</a>);
17    bool <a href='#SkPixmap_extractSubset'>extractSubset</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* subset, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const;
18    const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info()</a> const;
19    size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>() const;
20    const void* <a href='#SkPixmap_addr'>addr()</a> const;
21    int <a href='#SkPixmap_width'>width()</a> const;
22    int <a href='#SkPixmap_height'>height()</a> const;
23    <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkPixmap_colorType'>colorType</a>() const;
24    <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkPixmap_alphaType'>alphaType</a>() const;
25    <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>() const;
26    bool <a href='#SkPixmap_isOpaque'>isOpaque</a>() const;
27    <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds()</a> const;
28    int <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() const;
29    int <a href='#SkPixmap_shiftPerPixel'>shiftPerPixel</a>() const;
30    size_t <a href='#SkPixmap_computeByteSize'>computeByteSize</a>() const;
31    bool <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>() const;
32    <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(int x, int y) const;
33    float <a href='#SkPixmap_getAlphaf'>getAlphaf</a>(int x, int y) const;
34    const void* <a href='#SkPixmap_addr'>addr</a>(int x, int y) const;
35    const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>() const;
36    const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>() const;
37    const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>() const;
38    const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>() const;
39    const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>() const;
40    const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>(int x, int y) const;
41    const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>(int x, int y) const;
42    const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>(int x, int y) const;
43    const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>(int x, int y) const;
44    const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>(int x, int y) const;
45    void* <a href='#SkPixmap_writable_addr'>writable_addr</a>() const;
46    void* <a href='#SkPixmap_writable_addr'>writable_addr</a>(int x, int y) const;
47    uint8_t* <a href='#SkPixmap_writable_addr8'>writable_addr8</a>(int x, int y) const;
48    uint16_t* <a href='#SkPixmap_writable_addr16'>writable_addr16</a>(int x, int y) const;
49    uint32_t* <a href='#SkPixmap_writable_addr32'>writable_addr32</a>(int x, int y) const;
50    uint64_t* <a href='#SkPixmap_writable_addr64'>writable_addr64</a>(int x, int y) const;
51    uint16_t* <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>(int x, int y) const;
52    bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes) const;
53    bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX,
54                    int srcY) const;
55    bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY) const;
56    bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst) const;
57    bool <a href='#SkPixmap_scalePixels'>scalePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality) const;
58    bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const;
59    bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>) const;
60    bool <a href='#SkPixmap_erase'>erase</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr) const;
61};
62
63</pre>
64
65<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> provides a utility to pair <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with pixels and row bytes.
66<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> is a low level class which provides convenience functions to access
67raster destinations. <a href='SkCanvas_Reference#Canvas'>Canvas</a> can not draw <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, nor does <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> provide
68a direct drawing destination.
69
70Use <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to draw pixels referenced by <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>; use <a href='SkSurface_Reference#Surface'>Surface</a> to draw into
71pixels referenced by <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>.
72
73<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> does not try to manage the lifetime of the <a href='undocumented#Pixel'>pixel</a> memory. Use <a href='#Pixel_Ref'>Pixel_Ref</a>
74to manage <a href='undocumented#Pixel'>pixel</a> memory; <a href='#Pixel_Ref'>Pixel_Ref</a> is safe across threads.
75
76<a name='Initialization'></a>
77
78<a name='SkPixmap_empty_constructor'></a>
79
80---
81
82<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
83<a href='#SkPixmap_empty_constructor'>SkPixmap()</a>
84</pre>
85
86Creates an empty <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, with
87<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, and with a width and height of zero. Use
88<a href='#SkPixmap_reset'>reset()</a> to associate pixels, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
89after <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> has been created.
90
91### Return Value
92
93empty <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
94
95### Example
96
97<div><fiddle-embed name="9547e74a9d37553a667b913ffd1312dd">
98
99#### Example Output
100
101~~~~
102width:  0  height:  0  color: kUnknown_SkColorType  alpha: kUnknown_SkAlphaType
103width: 25  height: 35  color: kRGBA_8888_SkColorType  alpha: kOpaque_SkAlphaType
104~~~~
105
106</fiddle-embed></div>
107
108### See Also
109
110<a href='#SkPixmap_const_SkImageInfo_const_star'>SkPixmap</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info</a>, const void* <a href='#SkPixmap_addr'>addr</a>, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>) <a href='#SkPixmap_reset'>reset()</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
111
112<a name='SkPixmap_const_SkImageInfo_const_star'></a>
113
114---
115
116<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
117<a href='#SkPixmap_const_SkImageInfo_const_star'>SkPixmap</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>)
118</pre>
119
120Creates <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> from <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a> width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
121<a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> <a href='SkPoint_Reference#Point'>points</a> to pixels, or nullptr. <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>rowBytes</a> should be <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times
122<a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), or larger.
123
124No parameter checking is performed; it is up to the caller to ensure that
125<a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> and <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>rowBytes</a> agree with <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.
126
127The memory lifetime of pixels is managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> goes
128out of scope, <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> is unaffected.
129
130<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> may be later modified by <a href='#SkPixmap_reset'>reset()</a> to change its <a href='undocumented#Size'>size</a>, <a href='undocumented#Pixel'>pixel</a> type, or
131storage.
132
133### Parameters
134
135<table>  <tr>    <td><a name='SkPixmap_const_SkImageInfo_const_star_info'><code><strong>info</strong></code></a></td>
136    <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
137  </tr>
138  <tr>    <td><a name='SkPixmap_const_SkImageInfo_const_star_addr'><code><strong>addr</strong></code></a></td>
139    <td>pointer to pixels allocated by caller; may be nullptr</td>
140  </tr>
141  <tr>    <td><a name='SkPixmap_const_SkImageInfo_const_star_rowBytes'><code><strong>rowBytes</strong></code></a></td>
142    <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a>; width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
143  </tr>
144</table>
145
146### Return Value
147
148initialized <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
149
150### Example
151
152<div><fiddle-embed name="9a00774be57d7308313b3a9073e6e696"><div><a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a> takes const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& as an argument. The example
153constructs a <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> from the brace-delimited parameters.
154</div>
155
156#### Example Output
157
158~~~~
159image alpha only = false
160copy alpha only = true
161~~~~
162
163</fiddle-embed></div>
164
165### See Also
166
167<a href='#SkPixmap_empty_constructor'>SkPixmap()</a> <a href='#SkPixmap_reset'>reset()</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
168
169<a name='SkPixmap_reset'></a>
170
171---
172
173<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
174void <a href='#SkPixmap_reset'>reset()</a>
175</pre>
176
177Sets width, height, row bytes to zero; <a href='undocumented#Pixel'>pixel</a> address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
178<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>; and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
179
180The prior pixels are unaffected; it is up to the caller to release pixels
181memory if desired.
182
183### Example
184
185<div><fiddle-embed name="d9eb583c39f4f0baea79896b89245c98">
186
187#### Example Output
188
189~~~~
190width: 25  height: 35  color: kRGBA_8888_SkColorType  alpha: kOpaque_SkAlphaType
191width:  0  height:  0  color: kUnknown_SkColorType  alpha: kUnknown_SkAlphaType
192~~~~
193
194</fiddle-embed></div>
195
196### See Also
197
198<a href='#SkPixmap_empty_constructor'>SkPixmap()</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
199
200<a name='SkPixmap_reset_2'></a>
201
202---
203
204<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
205void reset(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>)
206</pre>
207
208Sets width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> from <a href='#SkPixmap_reset_2_info'>info</a>.
209Sets <a href='undocumented#Pixel'>pixel</a> address from <a href='#SkPixmap_reset_2_addr'>addr</a>, which may be nullptr.
210Sets row bytes from <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a>, which should be <a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times
211<a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), or larger.
212
213Does not check <a href='#SkPixmap_reset_2_addr'>addr</a>. Asserts if built with SK_DEBUG defined and if <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a> is
214too small to hold one row of pixels.
215
216The memory lifetime pixels are managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> goes
217out of scope, <a href='#SkPixmap_reset_2_addr'>addr</a> is unaffected.
218
219### Parameters
220
221<table>  <tr>    <td><a name='SkPixmap_reset_2_info'><code><strong>info</strong></code></a></td>
222    <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
223  </tr>
224  <tr>    <td><a name='SkPixmap_reset_2_addr'><code><strong>addr</strong></code></a></td>
225    <td>pointer to pixels allocated by caller; may be nullptr</td>
226  </tr>
227  <tr>    <td><a name='SkPixmap_reset_2_rowBytes'><code><strong>rowBytes</strong></code></a></td>
228    <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkPixmap_reset_2_addr'>addr</a>; width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
229  </tr>
230</table>
231
232### Example
233
234<div><fiddle-embed name="9a392b753167cfa849cebeefd5a6e07d"></fiddle-embed></div>
235
236### See Also
237
238<a href='#SkPixmap_const_SkImageInfo_const_star'>SkPixmap</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_reset_2_info'>info</a>, const void* <a href='#SkPixmap_reset_2_addr'>addr</a>, size_t <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a>) <a href='#SkPixmap_reset'>reset()</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
239
240<a name='SkPixmap_setColorSpace'></a>
241
242---
243
244<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
245void <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkPixmap_colorSpace'>colorSpace</a>)
246</pre>
247
248Changes <a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>; preserves width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
249<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, and leaves <a href='undocumented#Pixel'>pixel</a> address and row bytes unchanged.
250<a href='undocumented#SkColorSpace'>SkColorSpace</a>  <a href='undocumented#Reference_Count'>reference count</a> is incremented.
251
252### Parameters
253
254<table>  <tr>    <td><a name='SkPixmap_setColorSpace_colorSpace'><code><strong>colorSpace</strong></code></a></td>
255    <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> moved to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
256  </tr>
257</table>
258
259### Example
260
261<div><fiddle-embed name="30d70aec4de17c831dba71e03dc9664a">
262
263#### Example Output
264
265~~~~
266is unique
267is not unique
268~~~~
269
270</fiddle-embed></div>
271
272### See Also
273
274<a href='#Color_Space'>Color_Space</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_makeColorSpace'>makeColorSpace</a>
275
276<a name='SkPixmap_extractSubset'></a>
277
278---
279
280<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
281bool <a href='#SkPixmap_extractSubset'>extractSubset</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* subset, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area)const
282</pre>
283
284Sets <a href='#SkPixmap_extractSubset_subset'>subset</a> width, height, <a href='undocumented#Pixel'>pixel</a> address to intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> with <a href='#SkPixmap_extractSubset_area'>area</a>,
285if intersection is not empty; and return true. Otherwise, leave <a href='#SkPixmap_extractSubset_subset'>subset</a> unchanged
286and return false.
287
288Failing to read the return value generates a compile time warning.
289
290### Parameters
291
292<table>  <tr>    <td><a name='SkPixmap_extractSubset_subset'><code><strong>subset</strong></code></a></td>
293    <td>storage for width, height, <a href='undocumented#Pixel'>pixel</a> address of intersection</td>
294  </tr>
295  <tr>    <td><a name='SkPixmap_extractSubset_area'><code><strong>area</strong></code></a></td>
296    <td>bounds to intersect with <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a></td>
297  </tr>
298</table>
299
300### Return Value
301
302true if intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> and <a href='#SkPixmap_extractSubset_area'>area</a> is not empty
303
304### Example
305
306<div><fiddle-embed name="febdbfac6cf4cde69837643be2e1f6dd"></fiddle-embed></div>
307
308### See Also
309
310<a href='#SkPixmap_reset'>reset()</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_intersect'>intersect</a>
311
312<a name='Image_Info_Access'></a>
313
314<a name='SkPixmap_info'></a>
315
316---
317
318<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
319const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info()</a>const
320</pre>
321
322Returns width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
323
324### Return Value
325
326reference to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
327
328### Example
329
330<div><fiddle-embed name="6e0f558bf7fabc655041116288559134">
331
332#### Example Output
333
334~~~~
335width: 384 height: 384 color: BGRA_8888 alpha: Opaque
336~~~~
337
338</fiddle-embed></div>
339
340### See Also
341
342<a href='#Image_Info'>Image_Info</a>
343
344<a name='SkPixmap_rowBytes'></a>
345
346---
347
348<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
349size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>()const
350</pre>
351
352Returns row bytes, the interval from one <a href='undocumented#Pixel'>pixel</a> row to the next. Row bytes
353is at least as large as: <code><a href='#SkPixmap_width'>width()</a> * <a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
354
355Returns zero if <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
356It is up to the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> creator to ensure that row bytes is a useful value.
357
358### Return Value
359
360byte length of <a href='undocumented#Pixel'>pixel</a> row
361
362### Example
363
364<div><fiddle-embed name="19ac8bb81854680bd408fec8cb797d5c">
365
366#### Example Output
367
368~~~~
369rowBytes: 2 minRowBytes: 4
370rowBytes: 8 minRowBytes: 4
371~~~~
372
373</fiddle-embed></div>
374
375### See Also
376
377<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_info'>info()</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>
378
379<a name='SkPixmap_addr'></a>
380
381---
382
383<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
384const void* <a href='#SkPixmap_addr'>addr()</a>const
385</pre>
386
387Returns <a href='undocumented#Pixel'>pixel</a> address, the base address corresponding to the <a href='undocumented#Pixel'>pixel</a> origin.
388
389It is up to the <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> creator to ensure that <a href='undocumented#Pixel'>pixel</a> address is a useful value.
390
391### Return Value
392
393<a href='undocumented#Pixel'>pixel</a> address
394
395### Example
396
397<div><fiddle-embed name="17bcabaaee2dbb7beba562e9ca50b55e">
398
399#### Example Output
400
401~~~~
402#Volatile
403pixels address: 0x7f2a440bb010
404inset address:  0x7f2a440fb210
405~~~~
406
407</fiddle-embed></div>
408
409### See Also
410
411<a href='#SkPixmap_addr_2'>addr(int x, int y)</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_info'>info()</a> <a href='#SkPixmap_rowBytes'>rowBytes</a>()
412
413<a name='SkPixmap_width'></a>
414
415---
416
417<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
418int <a href='#SkPixmap_width'>width()</a>const
419</pre>
420
421Returns <a href='undocumented#Pixel'>pixel</a> count in each <a href='undocumented#Pixel'>pixel</a> row. Should be equal or less than:
422
423<code><a href='#SkPixmap_rowBytes'>rowBytes</a>() / <a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
424
425### Return Value
426
427<a href='undocumented#Pixel'>pixel</a> width in <a href='#Image_Info'>Image_Info</a>
428
429### Example
430
431<div><fiddle-embed name="f68617b7153a20b2ed3d7f9ed5c6e5e4">
432
433#### Example Output
434
435~~~~
436pixmap width: 16  info width: 16
437~~~~
438
439</fiddle-embed></div>
440
441### See Also
442
443<a href='#SkPixmap_height'>height()</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_width'>width()</a>
444
445<a name='SkPixmap_height'></a>
446
447---
448
449<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
450int <a href='#SkPixmap_height'>height()</a>const
451</pre>
452
453Returns <a href='undocumented#Pixel'>pixel</a> row count.
454
455### Return Value
456
457<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
458
459### Example
460
461<div><fiddle-embed name="4a996d32122f469d51ddd0186efb48cc">
462
463#### Example Output
464
465~~~~
466pixmap height: 32  info height: 32
467~~~~
468
469</fiddle-embed></div>
470
471### See Also
472
473<a href='#SkPixmap_width'>width</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_height'>height</a>
474
475<a name='SkPixmap_colorType'></a>
476
477---
478
479<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
480<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkPixmap_colorType'>colorType</a>()const
481</pre>
482
483Returns <a href='#Image_Info_Color_Type'>Color_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
484<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
485<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
486<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
487.
488
489### Return Value
490
491<a href='#Image_Info_Color_Type'>Color_Type</a> in <a href='#Image_Info'>Image_Info</a>
492
493### Example
494
495<div><fiddle-embed name="0ab5c7af272685f2ce177cc79e6b9457">
496
497#### Example Output
498
499~~~~
500color type: kAlpha_8_SkColorType
501~~~~
502
503</fiddle-embed></div>
504
505### See Also
506
507<a href='#SkPixmap_alphaType'>alphaType</a>() <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_colorType'>colorType</a>
508
509<a name='SkPixmap_alphaType'></a>
510
511---
512
513<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
514<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkPixmap_alphaType'>alphaType</a>()const
515</pre>
516
517Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
518<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
519.
520
521### Return Value
522
523<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> in <a href='#Image_Info'>Image_Info</a>
524
525### Example
526
527<div><fiddle-embed name="070b1a60232be499eb10c6ea62371804">
528
529#### Example Output
530
531~~~~
532alpha type: kPremul_SkAlphaType
533~~~~
534
535</fiddle-embed></div>
536
537### See Also
538
539<a href='#SkPixmap_colorType'>colorType</a>() <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_alphaType'>alphaType</a>
540
541<a name='SkPixmap_colorSpace'></a>
542
543---
544
545<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
546<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>()const
547</pre>
548
549Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The
550reference count of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
551immutable.
552
553### Return Value
554
555<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, or nullptr
556
557### Example
558
559<div><fiddle-embed name="3421bb20a302d563832ba7bb45e0cc58"><div><a href='undocumented#SkColorSpace'>SkColorSpace</a>::<a href='#SkColorSpace_MakeSRGBLinear'>MakeSRGBLinear</a> creates <a href='#Color_Space'>Color_Space</a> with linear gamma
560and an sRGB gamut. This <a href='#Color_Space'>Color_Space</a> gamma is not close to sRGB gamma.
561</div>
562
563#### Example Output
564
565~~~~
566gammaCloseToSRGB: false  gammaIsLinear: true  isSRGB: false
567~~~~
568
569</fiddle-embed></div>
570
571### See Also
572
573<a href='#Color_Space'>Color_Space</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_colorSpace'>colorSpace</a>
574
575<a name='SkPixmap_isOpaque'></a>
576
577---
578
579<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
580bool <a href='#SkPixmap_isOpaque'>isOpaque</a>()const
581</pre>
582
583Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
584Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> allows <a href='SkColor_Reference#Alpha'>alpha</a>, or if any <a href='undocumented#Pixel'>pixel</a> value has
585transparency.
586
587### Return Value
588
589true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> has opaque <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
590
591### Example
592
593<div><fiddle-embed name="efd083f121e888a523455ea8a49e50d1"><div><a href='#SkPixmap_isOpaque'>isOpaque</a> ignores whether all pixels are opaque or not.
594</div>
595
596#### Example Output
597
598~~~~
599isOpaque: false
600isOpaque: false
601isOpaque: true
602isOpaque: true
603~~~~
604
605</fiddle-embed></div>
606
607### See Also
608
609<a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_isOpaque'>isOpaque</a>
610
611<a name='SkPixmap_bounds'></a>
612
613---
614
615<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
616<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds()</a>const
617</pre>
618
619Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a> }.
620
621### Return Value
622
623integral rectangle from origin to <a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_height'>height()</a>
624
625### Example
626
627<div><fiddle-embed name="79750fb1d898a4e5c8c828b7bc9acec5">
628
629#### Example Output
630
631~~~~
632width: 0 height: 0 empty: true
633width: 0 height: 2 empty: true
634width: 2 height: 0 empty: true
635width: 2 height: 2 empty: false
636~~~~
637
638</fiddle-embed></div>
639
640### See Also
641
642<a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_width'>width()</a> <a href='SkIRect_Reference#IRect'>IRect</a>
643
644<a name='SkPixmap_rowBytesAsPixels'></a>
645
646---
647
648<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
649int <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>()const
650</pre>
651
652Returns number of pixels that fit on row. Should be greater than or equal to
653<a href='#SkPixmap_width'>width()</a>.
654
655### Return Value
656
657maximum pixels per row
658
659### Example
660
661<div><fiddle-embed name="6231bb212d0c231b5bc44eac626fbcb5">
662
663#### Example Output
664
665~~~~
666rowBytes: 4 rowBytesAsPixels: 1
667rowBytes: 5 rowBytesAsPixels: 1
668rowBytes: 6 rowBytesAsPixels: 1
669rowBytes: 7 rowBytesAsPixels: 1
670rowBytes: 8 rowBytesAsPixels: 2
671~~~~
672
673</fiddle-embed></div>
674
675### See Also
676
677<a href='#SkPixmap_rowBytes'>rowBytes</a> <a href='#SkPixmap_shiftPerPixel'>shiftPerPixel</a> <a href='#SkPixmap_width'>width</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>
678
679<a name='SkPixmap_shiftPerPixel'></a>
680
681---
682
683<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
684int <a href='#SkPixmap_shiftPerPixel'>shiftPerPixel</a>()const
685</pre>
686
687Returns bit shift converting row bytes to row pixels.
688Returns zero for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
689
690### Return Value
691
692one of: 0, 1, 2, 3; left shift to convert pixels to bytes
693
694### Example
695
696<div><fiddle-embed name="bf31ee140e2c163c3957276e6d4c4f0c">
697
698#### Example Output
699
700~~~~
701color: kUnknown_SkColorType   bytesPerPixel: 0 shiftPerPixel: 0
702color: kAlpha_8_SkColorType   bytesPerPixel: 1 shiftPerPixel: 0
703color: kRGB_565_SkColorType   bytesPerPixel: 2 shiftPerPixel: 1
704color: kARGB_4444_SkColorType bytesPerPixel: 2 shiftPerPixel: 1
705color: kRGBA_8888_SkColorType bytesPerPixel: 4 shiftPerPixel: 2
706color: kBGRA_8888_SkColorType bytesPerPixel: 4 shiftPerPixel: 2
707color: kGray_8_SkColorType    bytesPerPixel: 1 shiftPerPixel: 0
708color: kRGBA_F16_SkColorType  bytesPerPixel: 8 shiftPerPixel: 3
709~~~~
710
711</fiddle-embed></div>
712
713### See Also
714
715<a href='#SkPixmap_rowBytes'>rowBytes</a> <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a> <a href='#SkPixmap_width'>width</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>
716
717<a name='SkPixmap_computeByteSize'></a>
718
719---
720
721<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
722size_t <a href='#SkPixmap_computeByteSize'>computeByteSize</a>()const
723</pre>
724
725Returns minimum memory required for <a href='undocumented#Pixel'>pixel</a> storage.
726Does not include unused memory on last row when <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() exceeds <a href='#SkPixmap_width'>width()</a>.
727Returns zero if result does not fit in size_t.
728Returns zero if <a href='#SkPixmap_height'>height()</a> or <a href='#SkPixmap_width'>width()</a> is 0.
729Returns <a href='#SkPixmap_height'>height()</a> times <a href='#SkPixmap_rowBytes'>rowBytes</a>() if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
730
731### Return Value
732
733<a href='undocumented#Size'>size</a> in bytes of <a href='SkImage_Reference#Image'>image</a> buffer
734
735### Example
736
737<div><fiddle-embed name="410d14ddc45d272598c5a4e52bb047de">
738
739#### Example Output
740
741~~~~
742width:       1 height:       1 computeByteSize:             4
743width:       1 height:    1000 computeByteSize:          4999
744width:       1 height: 1000000 computeByteSize:       4999999
745width:    1000 height:       1 computeByteSize:          4000
746width:    1000 height:    1000 computeByteSize:       4999000
747width:    1000 height: 1000000 computeByteSize:    4999999000
748width: 1000000 height:       1 computeByteSize:       4000000
749width: 1000000 height:    1000 computeByteSize:    4999000000
750width: 1000000 height: 1000000 computeByteSize: 4999999000000
751~~~~
752
753</fiddle-embed></div>
754
755### See Also
756
757<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_computeByteSize'>computeByteSize</a>
758
759<a name='Reader'></a>
760
761<a name='SkPixmap_computeIsOpaque'></a>
762
763---
764
765<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
766bool <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>()const
767</pre>
768
769Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> determines how pixels
770are encoded, and whether <a href='undocumented#Pixel'>pixel</a> describes <a href='SkColor_Reference#Alpha'>alpha</a>. Returns true for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
771without <a href='SkColor_Reference#Alpha'>alpha</a> in each <a href='undocumented#Pixel'>pixel</a>; for other <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, returns true if all
772pixels have <a href='SkColor_Reference#Alpha'>alpha</a> values equivalent to 1.0 or greater.
773
774For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: always
775returns true. For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
776<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 255.
777For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 15.
778For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 1.0 or
779greater.
780
781Returns false for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
782
783### Return Value
784
785true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque
786
787### Example
788
789<div><fiddle-embed name="6ef37d5be03d0bfaec992dbb5a94c66f">
790
791#### Example Output
792
793~~~~
794computeIsOpaque: false
795computeIsOpaque: true
796computeIsOpaque: false
797computeIsOpaque: true
798~~~~
799
800</fiddle-embed></div>
801
802### See Also
803
804<a href='#SkPixmap_isOpaque'>isOpaque</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='SkColor_Reference#Alpha'>Alpha</a>
805
806<a name='SkPixmap_getColor'></a>
807
808---
809
810<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
811<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(int x, int y)const
812</pre>
813
814Returns <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_getColor_x'>x</a>, <a href='#SkPixmap_getColor_y'>y</a>) as <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>.
815Returns black with <a href='SkColor_Reference#Alpha'>alpha</a> if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
816
817Input is not validated: out of bounds values of <a href='#SkPixmap_getColor_x'>x</a> or <a href='#SkPixmap_getColor_y'>y</a> trigger an assert() if
818built with SK_DEBUG defined; and returns undefined values or may crash if
819SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
820<a href='undocumented#Pixel'>pixel</a> address is nullptr.
821
822<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is ignored. Some <a href='SkColor_Reference#Color'>color</a> precision may be lost in the
823conversion to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>; original <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> may have additional
824precision.
825
826### Parameters
827
828<table>  <tr>    <td><a name='SkPixmap_getColor_x'><code><strong>x</strong></code></a></td>
829    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
830  </tr>
831  <tr>    <td><a name='SkPixmap_getColor_y'><code><strong>y</strong></code></a></td>
832    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
833  </tr>
834</table>
835
836### Return Value
837
838<a href='undocumented#Pixel'>pixel</a> converted to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>
839
840### Example
841
842<div><fiddle-embed name="94ad244056dc80ecd87daae004266334">
843
844#### Example Output
845
846~~~~
847Premultiplied:
848(0, 0) 0x00000000 0x2a0e002a 0x55380055 0x7f7f007f
849(0, 1) 0x2a000e2a 0x551c1c55 0x7f542a7f 0xaaaa38aa
850(0, 2) 0x55003855 0x7f2a547f 0xaa7171aa 0xd4d48dd4
851(0, 3) 0x7f007f7f 0xaa38aaaa 0xd48dd4d4 0xffffffff
852Unpremultiplied:
853(0, 0) 0x00000000 0x2a5500ff 0x55a800ff 0x7fff00ff
854(0, 1) 0x2a0055ff 0x555454ff 0x7fa954ff 0xaaff54ff
855(0, 2) 0x5500a8ff 0x7f54a9ff 0xaaaaaaff 0xd4ffaaff
856(0, 3) 0x7f00ffff 0xaa54ffff 0xd4aaffff 0xffffffff
857~~~~
858
859</fiddle-embed></div>
860
861### See Also
862
863<a href='#SkPixmap_getAlphaf'>getAlphaf</a> <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_readPixels'>readPixels</a>
864
865<a name='SkPixmap_getAlphaf'></a>
866
867---
868
869<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
870float <a href='#SkPixmap_getAlphaf'>getAlphaf</a>(int x, int y)const
871</pre>
872
873Looks up the <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_getAlphaf_x'>x</a>,<a href='#SkPixmap_getAlphaf_y'>y</a>) and return its <a href='SkColor_Reference#Alpha'>alpha</a> component, normalized to [0..1].
874This is roughly equivalent to <code>SkGetColorA(<a href='#SkPixmap_getColor'>getColor</a>())</code>, but can be more efficient
875(and more precise if the pixels store more than 8 bits per component).
876
877### Parameters
878
879<table>  <tr>    <td><a name='SkPixmap_getAlphaf_x'><code><strong>x</strong></code></a></td>
880    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
881  </tr>
882  <tr>    <td><a name='SkPixmap_getAlphaf_y'><code><strong>y</strong></code></a></td>
883    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
884  </tr>
885</table>
886
887### Return Value
888
889<a href='SkColor_Reference#Alpha'>alpha</a> converted to normalized float
890
891### See Also
892
893<a href='#SkPixmap_getColor'>getColor</a>
894
895<a name='Readable_Address'></a>
896
897<a name='SkPixmap_addr_2'></a>
898
899---
900
901<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
902const void* <a href='#SkPixmap_addr'>addr</a>(int x, int y)const
903</pre>
904
905Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr_2_x'>x</a>, <a href='#SkPixmap_addr_2_y'>y</a>). Returns nullptr if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
906
907Input is not validated: out of bounds values of <a href='#SkPixmap_addr_2_x'>x</a> or <a href='#SkPixmap_addr_2_y'>y</a> trigger an assert() if
908built with SK_DEBUG defined. Returns nullptr if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
909
910Performs a lookup of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>; for better performance, call
911one of: <a href='#SkPixmap_addr8'>addr8</a>, <a href='#SkPixmap_addr16'>addr16</a>, <a href='#SkPixmap_addr32'>addr32</a>, <a href='#SkPixmap_addr64'>addr64</a>, or <a href='#SkPixmap_addrF16'>addrF16</a>().
912
913### Parameters
914
915<table>  <tr>    <td><a name='SkPixmap_addr_2_x'><code><strong>x</strong></code></a></td>
916    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
917  </tr>
918  <tr>    <td><a name='SkPixmap_addr_2_y'><code><strong>y</strong></code></a></td>
919    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
920  </tr>
921</table>
922
923### Return Value
924
925readable generic pointer to <a href='undocumented#Pixel'>pixel</a>
926
927### Example
928
929<div><fiddle-embed name="6e6e29e860eafed77308c973400cc84d">
930
931#### Example Output
932
933~~~~
934pixmap.addr(1, 2) == &storage[1 + 2 * w]
935~~~~
936
937</fiddle-embed></div>
938
939### See Also
940
941<a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_getAddr'>getAddr</a>
942
943<a name='SkPixmap_addr8'></a>
944
945---
946
947<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
948const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>()const
949</pre>
950
951Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 8-bit bytes.
952Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
953<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
954
955One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
956
957### Return Value
958
959readable unsigned 8-bit pointer to pixels
960
961### Example
962
963<div><fiddle-embed name="9adda80b2dd1b08ec5ccf66da7c8bd91">
964
965#### Example Output
966
967~~~~
968pixmap.addr8() == storage
969~~~~
970
971</fiddle-embed></div>
972
973### See Also
974
975<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr8'>writable_addr8</a>
976
977<a name='SkPixmap_addr16'></a>
978
979---
980
981<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
982const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>()const
983</pre>
984
985Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 16-bit words.
986Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
987<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
988
989One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
990
991### Return Value
992
993readable unsigned 16-bit pointer to pixels
994
995### Example
996
997<div><fiddle-embed name="9b16012d265c954c6de13f3fc960da52">
998
999#### Example Output
1000
1001~~~~
1002pixmap.addr16() == storage
1003~~~~
1004
1005</fiddle-embed></div>
1006
1007### See Also
1008
1009<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a>
1010
1011<a name='SkPixmap_addr32'></a>
1012
1013---
1014
1015<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1016const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>()const
1017</pre>
1018
1019Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 32-bit words.
1020Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
1021<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG defined.
1022
1023One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
1024
1025### Return Value
1026
1027readable unsigned 32-bit pointer to pixels
1028
1029### Example
1030
1031<div><fiddle-embed name="6b90c7ae9f254fe4ea9ef638f893a3e6">
1032
1033#### Example Output
1034
1035~~~~
1036pixmap.addr32() == storage
1037~~~~
1038
1039</fiddle-embed></div>
1040
1041### See Also
1042
1043<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr32'>writable_addr32</a>
1044
1045<a name='SkPixmap_addr64'></a>
1046
1047---
1048
1049<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1050const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>()const
1051</pre>
1052
1053Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 64-bit words.
1054Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
1055with SK_DEBUG defined.
1056
1057One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
1058
1059### Return Value
1060
1061readable unsigned 64-bit pointer to pixels
1062
1063### Example
1064
1065<div><fiddle-embed name="0d17085a4698a8a2e2235fad9041b4b4">
1066
1067#### Example Output
1068
1069~~~~
1070pixmap.addr64() == storage
1071~~~~
1072
1073</fiddle-embed></div>
1074
1075### See Also
1076
1077<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a>
1078
1079<a name='SkPixmap_addrF16'></a>
1080
1081---
1082
1083<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1084const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>()const
1085</pre>
1086
1087Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 16-bit words.
1088Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
1089with SK_DEBUG defined.
1090
1091Each word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
1092Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
1093
1094### Return Value
1095
1096readable unsigned 16-bit pointer to first component of pixels
1097
1098### Example
1099
1100<div><fiddle-embed name="54e8525a592f05623c33b375aebc90c1">
1101
1102#### Example Output
1103
1104~~~~
1105pixmap.addrF16() == storage
1106~~~~
1107
1108</fiddle-embed></div>
1109
1110### See Also
1111
1112<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>
1113
1114<a name='SkPixmap_addr8_2'></a>
1115
1116---
1117
1118<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1119const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>(int x, int y)const
1120</pre>
1121
1122Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>).
1123
1124Input is not validated: out of bounds values of <a href='#SkPixmap_addr8_2_x'>x</a> or <a href='#SkPixmap_addr8_2_y'>y</a> trigger an assert() if
1125built with SK_DEBUG defined.
1126
1127Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
1128<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
1129
1130### Parameters
1131
1132<table>  <tr>    <td><a name='SkPixmap_addr8_2_x'><code><strong>x</strong></code></a></td>
1133    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1134  </tr>
1135  <tr>    <td><a name='SkPixmap_addr8_2_y'><code><strong>y</strong></code></a></td>
1136    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1137  </tr>
1138</table>
1139
1140### Return Value
1141
1142readable unsigned 8-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>)
1143
1144### Example
1145
1146<div><fiddle-embed name="5b986272268ef2c52045c1856f8b6107">
1147
1148#### Example Output
1149
1150~~~~
1151pixmap.addr8(1, 2) == &storage[1 + 2 * w]
1152~~~~
1153
1154</fiddle-embed></div>
1155
1156### See Also
1157
1158<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr8'>writable_addr8</a>
1159
1160<a name='SkPixmap_addr16_2'></a>
1161
1162---
1163
1164<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1165const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>(int x, int y)const
1166</pre>
1167
1168Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>).
1169
1170Input is not validated: out of bounds values of <a href='#SkPixmap_addr16_2_x'>x</a> or <a href='#SkPixmap_addr16_2_y'>y</a> trigger an assert() if
1171built with SK_DEBUG defined.
1172
1173Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
1174<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
1175
1176### Parameters
1177
1178<table>  <tr>    <td><a name='SkPixmap_addr16_2_x'><code><strong>x</strong></code></a></td>
1179    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1180  </tr>
1181  <tr>    <td><a name='SkPixmap_addr16_2_y'><code><strong>y</strong></code></a></td>
1182    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1183  </tr>
1184</table>
1185
1186### Return Value
1187
1188readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>)
1189
1190### Example
1191
1192<div><fiddle-embed name="2c0c88a546d4ef093ab63ff72dac00b9">
1193
1194#### Example Output
1195
1196~~~~
1197pixmap.addr16(1, 2) == &storage[1 + 2 * w]
1198~~~~
1199
1200</fiddle-embed></div>
1201
1202### See Also
1203
1204<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a>
1205
1206<a name='SkPixmap_addr32_2'></a>
1207
1208---
1209
1210<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1211const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>(int x, int y)const
1212</pre>
1213
1214Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>).
1215
1216Input is not validated: out of bounds values of <a href='#SkPixmap_addr32_2_x'>x</a> or <a href='#SkPixmap_addr32_2_y'>y</a> trigger an assert() if
1217built with SK_DEBUG defined.
1218
1219Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
1220<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG defined.
1221
1222### Parameters
1223
1224<table>  <tr>    <td><a name='SkPixmap_addr32_2_x'><code><strong>x</strong></code></a></td>
1225    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1226  </tr>
1227  <tr>    <td><a name='SkPixmap_addr32_2_y'><code><strong>y</strong></code></a></td>
1228    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1229  </tr>
1230</table>
1231
1232### Return Value
1233
1234readable unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>)
1235
1236### Example
1237
1238<div><fiddle-embed name="12f8b5ce9fb25604f33df336677f5d62">
1239
1240#### Example Output
1241
1242~~~~
1243pixmap.addr32(1, 2) == &storage[1 + 2 * w]
1244~~~~
1245
1246</fiddle-embed></div>
1247
1248### See Also
1249
1250<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a>
1251
1252<a name='SkPixmap_addr64_2'></a>
1253
1254---
1255
1256<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1257const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>(int x, int y)const
1258</pre>
1259
1260Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>).
1261
1262Input is not validated: out of bounds values of <a href='#SkPixmap_addr64_2_x'>x</a> or <a href='#SkPixmap_addr64_2_y'>y</a> trigger an assert() if
1263built with SK_DEBUG defined.
1264
1265Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
1266with SK_DEBUG defined.
1267
1268### Parameters
1269
1270<table>  <tr>    <td><a name='SkPixmap_addr64_2_x'><code><strong>x</strong></code></a></td>
1271    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1272  </tr>
1273  <tr>    <td><a name='SkPixmap_addr64_2_y'><code><strong>y</strong></code></a></td>
1274    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1275  </tr>
1276</table>
1277
1278### Return Value
1279
1280readable unsigned 64-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>)
1281
1282### Example
1283
1284<div><fiddle-embed name="5449f65fd7673273b0b57807fd3117ff">
1285
1286#### Example Output
1287
1288~~~~
1289pixmap.addr64(1, 2) == &storage[1 + 2 * w]
1290~~~~
1291
1292</fiddle-embed></div>
1293
1294### See Also
1295
1296<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addrF16'>addrF16</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a>
1297
1298<a name='SkPixmap_addrF16_2'></a>
1299
1300---
1301
1302<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1303const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>(int x, int y)const
1304</pre>
1305
1306Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>).
1307
1308Input is not validated: out of bounds values of <a href='#SkPixmap_addrF16_2_x'>x</a> or <a href='#SkPixmap_addrF16_2_y'>y</a> trigger an assert() if
1309built with SK_DEBUG defined.
1310
1311Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
1312with SK_DEBUG defined.
1313
1314Each unsigned 16-bit word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
1315Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
1316
1317### Parameters
1318
1319<table>  <tr>    <td><a name='SkPixmap_addrF16_2_x'><code><strong>x</strong></code></a></td>
1320    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1321  </tr>
1322  <tr>    <td><a name='SkPixmap_addrF16_2_y'><code><strong>y</strong></code></a></td>
1323    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1324  </tr>
1325</table>
1326
1327### Return Value
1328
1329readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> component at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>)
1330
1331### Example
1332
1333<div><fiddle-embed name="f6076cad455bc80af5d06eb121d3b6f2">
1334
1335#### Example Output
1336
1337~~~~
1338pixmap.addrF16(1, 2) == &storage[1 * wordsPerPixel + 2 * rowWords]
1339~~~~
1340
1341</fiddle-embed></div>
1342
1343### See Also
1344
1345<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a> <a href='#SkPixmap_addr16'>addr16</a> <a href='#SkPixmap_addr32'>addr32</a> <a href='#SkPixmap_addr64'>addr64</a> <a href='#SkPixmap_getColor'>getColor</a> <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>
1346
1347<a name='Writable_Address'></a>
1348
1349<a name='SkPixmap_writable_addr'></a>
1350
1351---
1352
1353<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1354void* <a href='#SkPixmap_writable_addr'>writable_addr</a>()const
1355</pre>
1356
1357Returns writable base <a href='undocumented#Pixel'>pixel</a> address.
1358
1359### Return Value
1360
1361writable generic base pointer to pixels
1362
1363### Example
1364
1365<div><fiddle-embed name="74ef460f89ed5904334d0f8883e781c4">
1366
1367#### Example Output
1368
1369~~~~
1370pixmap.writable_addr() == (void *)storage
1371pixmap.getColor(0, 1) == 0x00000000
1372pixmap.getColor(0, 0) == 0xFFFFFFFF
1373~~~~
1374
1375</fiddle-embed></div>
1376
1377### See Also
1378
1379<a href='#SkPixmap_writable_addr8'>writable_addr8</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a> <a href='#SkPixmap_writable_addr32'>writable_addr32</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a> <a href='#SkPixmap_addr'>addr()</a>
1380
1381<a name='SkPixmap_writable_addr_2'></a>
1382
1383---
1384
1385<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1386void* <a href='#SkPixmap_writable_addr'>writable_addr</a>(int x, int y)const
1387</pre>
1388
1389Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr_2_x'>x</a>, <a href='#SkPixmap_writable_addr_2_y'>y</a>).
1390
1391Input is not validated: out of bounds values of <a href='#SkPixmap_writable_addr_2_x'>x</a> or <a href='#SkPixmap_writable_addr_2_y'>y</a> trigger an assert() if
1392built with SK_DEBUG defined. Returns zero if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
1393
1394### Parameters
1395
1396<table>  <tr>    <td><a name='SkPixmap_writable_addr_2_x'><code><strong>x</strong></code></a></td>
1397    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1398  </tr>
1399  <tr>    <td><a name='SkPixmap_writable_addr_2_y'><code><strong>y</strong></code></a></td>
1400    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1401  </tr>
1402</table>
1403
1404### Return Value
1405
1406writable generic pointer to <a href='undocumented#Pixel'>pixel</a>
1407
1408### Example
1409
1410<div><fiddle-embed name="559eaca89c765bc8466ea1ba3331d4db">
1411
1412#### Example Output
1413
1414~~~~
1415pixmap.writable_addr() == (void *)storage
1416pixmap.getColor(0, 0) == 0x00000000
1417pixmap.getColor(1, 2) == 0xFFFFFFFF
1418~~~~
1419
1420</fiddle-embed></div>
1421
1422### See Also
1423
1424<a href='#SkPixmap_writable_addr8'>writable_addr8</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a> <a href='#SkPixmap_writable_addr32'>writable_addr32</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a> <a href='#SkPixmap_addr'>addr()</a>
1425
1426<a name='SkPixmap_writable_addr8'></a>
1427
1428---
1429
1430<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1431uint8_t* <a href='#SkPixmap_writable_addr8'>writable_addr8</a>(int x, int y)const
1432</pre>
1433
1434Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr8_x'>x</a>, <a href='#SkPixmap_writable_addr8_y'>y</a>). Result is addressable as unsigned
14358-bit bytes. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>
1436or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
1437
1438One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
1439
1440### Parameters
1441
1442<table>  <tr>    <td><a name='SkPixmap_writable_addr8_x'><code><strong>x</strong></code></a></td>
1443    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1444  </tr>
1445  <tr>    <td><a name='SkPixmap_writable_addr8_y'><code><strong>y</strong></code></a></td>
1446    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1447  </tr>
1448</table>
1449
1450### Return Value
1451
1452writable unsigned 8-bit pointer to pixels
1453
1454### Example
1455
1456<div><fiddle-embed name="809284db136748208b3efc31cd89de29"><div>Altering pixels after drawing <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is not guaranteed to affect subsequent
1457drawing on all platforms. Adding a second <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_installPixels'>installPixels</a> after editing
1458<a href='undocumented#Pixel'>pixel</a> memory is safer.
1459</div></fiddle-embed></div>
1460
1461### See Also
1462
1463<a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a> <a href='#SkPixmap_writable_addr32'>writable_addr32</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a> <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr8'>addr8</a>
1464
1465<a name='SkPixmap_writable_addr16'></a>
1466
1467---
1468
1469<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1470uint16_t* <a href='#SkPixmap_writable_addr16'>writable_addr16</a>(int x, int y)const
1471</pre>
1472
1473Returns <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr16_x'>x</a>, <a href='#SkPixmap_writable_addr16_y'>y</a>). Result is addressable as unsigned
147416-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
1475or <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
1476
1477One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
1478
1479### Parameters
1480
1481<table>  <tr>    <td><a name='SkPixmap_writable_addr16_x'><code><strong>x</strong></code></a></td>
1482    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1483  </tr>
1484  <tr>    <td><a name='SkPixmap_writable_addr16_y'><code><strong>y</strong></code></a></td>
1485    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1486  </tr>
1487</table>
1488
1489### Return Value
1490
1491writable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a>
1492
1493### Example
1494
1495<div><fiddle-embed name="6da54774f6432b46b47ea9013c15f280"><div>Draw a five by five <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, and draw it again with a center black <a href='undocumented#Pixel'>pixel</a>.
1496The low nibble of the 16-bit word is <a href='SkColor_Reference#Alpha'>Alpha</a>.
1497</div></fiddle-embed></div>
1498
1499### See Also
1500
1501<a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr8'>writable_addr8</a> <a href='#SkPixmap_writable_addr32'>writable_addr32</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a> <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr16'>addr16</a>
1502
1503<a name='SkPixmap_writable_addr32'></a>
1504
1505---
1506
1507<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1508uint32_t* <a href='#SkPixmap_writable_addr32'>writable_addr32</a>(int x, int y)const
1509</pre>
1510
1511Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr32_x'>x</a>, <a href='#SkPixmap_writable_addr32_y'>y</a>). Result is addressable as unsigned
151232-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
1513<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG
1514defined.
1515
1516One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
1517
1518### Parameters
1519
1520<table>  <tr>    <td><a name='SkPixmap_writable_addr32_x'><code><strong>x</strong></code></a></td>
1521    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1522  </tr>
1523  <tr>    <td><a name='SkPixmap_writable_addr32_y'><code><strong>y</strong></code></a></td>
1524    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1525  </tr>
1526</table>
1527
1528### Return Value
1529
1530writable unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a>
1531
1532### Example
1533
1534<div><fiddle-embed name="086866243bf9e4c14c3b215a2aa69ad9"></fiddle-embed></div>
1535
1536### See Also
1537
1538<a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr8'>writable_addr8</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a> <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr32'>addr32</a>
1539
1540<a name='SkPixmap_writable_addr64'></a>
1541
1542---
1543
1544<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1545uint64_t* <a href='#SkPixmap_writable_addr64'>writable_addr64</a>(int x, int y)const
1546</pre>
1547
1548Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr64_x'>x</a>, <a href='#SkPixmap_writable_addr64_y'>y</a>). Result is addressable as unsigned
154964-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
1550<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built with SK_DEBUG defined.
1551
1552One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
1553
1554### Parameters
1555
1556<table>  <tr>    <td><a name='SkPixmap_writable_addr64_x'><code><strong>x</strong></code></a></td>
1557    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1558  </tr>
1559  <tr>    <td><a name='SkPixmap_writable_addr64_y'><code><strong>y</strong></code></a></td>
1560    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1561  </tr>
1562</table>
1563
1564### Return Value
1565
1566writable unsigned 64-bit pointer to <a href='undocumented#Pixel'>pixel</a>
1567
1568### Example
1569
1570<div><fiddle-embed name="de14d8d30e4a7b6462103d0e0dd96b0b"></fiddle-embed></div>
1571
1572### See Also
1573
1574<a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr8'>writable_addr8</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a> <a href='#SkPixmap_writable_addr32'>writable_addr32</a> <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a> <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr64'>addr64</a>
1575
1576<a name='SkPixmap_writable_addrF16'></a>
1577
1578---
1579
1580<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1581uint16_t* <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>(int x, int y)const
1582</pre>
1583
1584Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addrF16_x'>x</a>, <a href='#SkPixmap_writable_addrF16_y'>y</a>). Result is addressable as unsigned
158516-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
1586<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built with SK_DEBUG defined.
1587
1588Each word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
1589Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
1590
1591### Parameters
1592
1593<table>  <tr>    <td><a name='SkPixmap_writable_addrF16_x'><code><strong>x</strong></code></a></td>
1594    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
1595  </tr>
1596  <tr>    <td><a name='SkPixmap_writable_addrF16_y'><code><strong>y</strong></code></a></td>
1597    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
1598  </tr>
1599</table>
1600
1601### Return Value
1602
1603writable unsigned 16-bit pointer to first component of <a href='undocumented#Pixel'>pixel</a>
1604
1605### Example
1606
1607<div><fiddle-embed name="7822d78f5cacf5c04267cbbc6c6d0b80"><div>Left <a href='SkBitmap_Reference#Bitmap'>bitmap</a> is drawn with two pixels defined in half float format. Right <a href='SkBitmap_Reference#Bitmap'>bitmap</a>
1608is drawn after overwriting bottom half float <a href='SkColor_Reference#Color'>color</a> with top half float <a href='SkColor_Reference#Color'>color</a>.
1609</div></fiddle-embed></div>
1610
1611### See Also
1612
1613<a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='#SkPixmap_writable_addr8'>writable_addr8</a> <a href='#SkPixmap_writable_addr16'>writable_addr16</a> <a href='#SkPixmap_writable_addr32'>writable_addr32</a> <a href='#SkPixmap_writable_addr64'>writable_addr64</a> <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addrF16'>addrF16</a>
1614
1615<a name='Pixels'></a>
1616
1617<a name='SkPixmap_readPixels'></a>
1618
1619---
1620
1621<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1622bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes)const
1623</pre>
1624
1625Copies a <a href='SkRect_Reference#SkRect'>SkRect</a> of pixels to <a href='#SkPixmap_readPixels_dstPixels'>dstPixels</a>. Copy starts at (0, 0), and does not
1626exceed <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>).
1627
1628<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> specifies width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
1629<a href='undocumented#SkColorSpace'>SkColorSpace</a> of destination. <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination
1630row to the next. Returns true if pixels are copied. Returns false if
1631<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> address equals nullptr, or <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
1632
1633Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
1634<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
1635If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
1636If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
1637match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
1638false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
1639
1640Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
1641
1642### Parameters
1643
1644<table>  <tr>    <td><a name='SkPixmap_readPixels_dstInfo'><code><strong>dstInfo</strong></code></a></td>
1645    <td>destination width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
1646  </tr>
1647  <tr>    <td><a name='SkPixmap_readPixels_dstPixels'><code><strong>dstPixels</strong></code></a></td>
1648    <td>destination  <a href='undocumented#Pixel_Storage'>pixel storage</a></td>
1649  </tr>
1650  <tr>    <td><a name='SkPixmap_readPixels_dstRowBytes'><code><strong>dstRowBytes</strong></code></a></td>
1651    <td>destination row length</td>
1652  </tr>
1653</table>
1654
1655### Return Value
1656
1657true if pixels are copied to <a href='#SkPixmap_readPixels_dstPixels'>dstPixels</a>
1658
1659### Example
1660
1661<div><fiddle-embed name="df4e355c4845350daede833b4fd21ec1"><div>Transferring the gradient from 8 bits per component to 4 bits per component
1662creates visible banding.
1663</div></fiddle-embed></div>
1664
1665### See Also
1666
1667<a href='#SkPixmap_erase'>erase</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_readPixels'>readPixels</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawBitmap'>drawBitmap</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_readPixels'>readPixels</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_readPixels'>readPixels</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>::<a href='#SkSurface_readPixels'>readPixels</a>
1668
1669<a name='SkPixmap_readPixels_2'></a>
1670
1671---
1672
1673<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1674bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX, int srcY)const
1675</pre>
1676
1677Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels to <a href='#SkPixmap_readPixels_2_dstPixels'>dstPixels</a>. Copy starts at (<a href='#SkPixmap_readPixels_2_srcX'>srcX</a>, <a href='#SkPixmap_readPixels_2_srcY'>srcY</a>), and does not
1678exceed <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>).
1679
1680<a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, and
1681<a href='#Color_Space'>Color_Space</a> of destination. <a href='#SkPixmap_readPixels_2_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination
1682row to the next. Returns true if pixels are copied. Returns false if
1683<a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a> has no address, or <a href='#SkPixmap_readPixels_2_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
1684
1685Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is
1686<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
1687If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
1688If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
1689match. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
1690false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
1691
1692<a href='#SkPixmap_readPixels_2_srcX'>srcX</a> and <a href='#SkPixmap_readPixels_2_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
1693false if <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative. Returns false if:
1694
1695<code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_2_srcX'>srcX</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_2_srcY'>srcY</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_height'>height()</a></code>.
1696
1697### Parameters
1698
1699<table>  <tr>    <td><a name='SkPixmap_readPixels_2_dstInfo'><code><strong>dstInfo</strong></code></a></td>
1700    <td>destination width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a></td>
1701  </tr>
1702  <tr>    <td><a name='SkPixmap_readPixels_2_dstPixels'><code><strong>dstPixels</strong></code></a></td>
1703    <td>destination  <a href='undocumented#Pixel_Storage'>pixel storage</a></td>
1704  </tr>
1705  <tr>    <td><a name='SkPixmap_readPixels_2_dstRowBytes'><code><strong>dstRowBytes</strong></code></a></td>
1706    <td>destination row length</td>
1707  </tr>
1708  <tr>    <td><a name='SkPixmap_readPixels_2_srcX'><code><strong>srcX</strong></code></a></td>
1709    <td>column index whose absolute value is less than <a href='#SkPixmap_width'>width()</a></td>
1710  </tr>
1711  <tr>    <td><a name='SkPixmap_readPixels_2_srcY'><code><strong>srcY</strong></code></a></td>
1712    <td>row index whose absolute value is less than <a href='#SkPixmap_height'>height()</a></td>
1713  </tr>
1714</table>
1715
1716### Return Value
1717
1718true if pixels are copied to <a href='#SkPixmap_readPixels_2_dstPixels'>dstPixels</a>
1719
1720### Example
1721
1722<div><fiddle-embed name="094ca0bd37588cc7be241bb387a3e17b"></fiddle-embed></div>
1723
1724### See Also
1725
1726<a href='#SkPixmap_erase'>erase</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_readPixels'>readPixels</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawBitmap'>drawBitmap</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_readPixels'>readPixels</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_readPixels'>readPixels</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>::<a href='#SkSurface_readPixels'>readPixels</a>
1727
1728<a name='SkPixmap_readPixels_3'></a>
1729
1730---
1731
1732<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1733bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY)const
1734</pre>
1735
1736Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels to <a href='#SkPixmap_readPixels_3_dst'>dst</a>. Copy starts at (<a href='#SkPixmap_readPixels_3_srcX'>srcX</a>, <a href='#SkPixmap_readPixels_3_srcY'>srcY</a>), and does not
1737exceed <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>). <a href='#SkPixmap_readPixels_3_dst'>dst</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>,
1738<a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, and <a href='#Color_Space'>Color_Space</a> of destination.  Returns true if pixels are copied.
1739Returns false if <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_addr'>addr()</a> equals nullptr, or <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than
1740<a href='#SkPixmap_readPixels_3_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
1741
1742Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is
1743<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
1744If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
1745If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
1746match. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
1747false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
1748
1749<a href='#SkPixmap_readPixels_3_srcX'>srcX</a> and <a href='#SkPixmap_readPixels_3_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
1750false <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative. Returns false if:
1751
1752<code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_3_srcX'>srcX</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_3_srcY'>srcY</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_height'>height()</a></code>.
1753
1754### Parameters
1755
1756<table>  <tr>    <td><a name='SkPixmap_readPixels_3_dst'><code><strong>dst</strong></code></a></td>
1757    <td><a href='#Image_Info'>Image_Info</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
1758  </tr>
1759  <tr>    <td><a name='SkPixmap_readPixels_3_srcX'><code><strong>srcX</strong></code></a></td>
1760    <td>column index whose absolute value is less than <a href='#SkPixmap_width'>width()</a></td>
1761  </tr>
1762  <tr>    <td><a name='SkPixmap_readPixels_3_srcY'><code><strong>srcY</strong></code></a></td>
1763    <td>row index whose absolute value is less than <a href='#SkPixmap_height'>height()</a></td>
1764  </tr>
1765</table>
1766
1767### Return Value
1768
1769true if pixels are copied to <a href='#SkPixmap_readPixels_3_dst'>dst</a>
1770
1771### Example
1772
1773<div><fiddle-embed name="6ec7f7b2cc163cd29f627eef6d4b061c"></fiddle-embed></div>
1774
1775### See Also
1776
1777<a href='#SkPixmap_erase'>erase</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_readPixels'>readPixels</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawBitmap'>drawBitmap</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_readPixels'>readPixels</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_readPixels'>readPixels</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>::<a href='#SkSurface_readPixels'>readPixels</a>
1778
1779<a name='SkPixmap_readPixels_4'></a>
1780
1781---
1782
1783<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1784bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst)const
1785</pre>
1786
1787Copies pixels inside <a href='#SkPixmap_bounds'>bounds()</a> to <a href='#SkPixmap_readPixels_4_dst'>dst</a>. <a href='#SkPixmap_readPixels_4_dst'>dst</a> specifies width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
1788<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a> of destination.  Returns true if pixels are copied.
1789Returns false if <a href='#SkPixmap_readPixels_4_dst'>dst</a> address equals nullptr, or <a href='#SkPixmap_readPixels_4_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than
1790<a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
1791
1792Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
1793<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> must match.
1794If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match.
1795If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> must
1796match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match. Returns
1797false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
1798
1799Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
1800
1801### Parameters
1802
1803<table>  <tr>    <td><a name='SkPixmap_readPixels_4_dst'><code><strong>dst</strong></code></a></td>
1804    <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
1805  </tr>
1806</table>
1807
1808### Return Value
1809
1810true if pixels are copied to <a href='#SkPixmap_readPixels_4_dst'>dst</a>
1811
1812### Example
1813
1814<div><fiddle-embed name="e18549b5ee1039cb61b0bb38c2104fc9"></fiddle-embed></div>
1815
1816### See Also
1817
1818<a href='#SkPixmap_erase'>erase</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_readPixels'>readPixels</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawBitmap'>drawBitmap</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_readPixels'>readPixels</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_readPixels'>readPixels</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>::<a href='#SkSurface_readPixels'>readPixels</a>
1819
1820<a name='SkPixmap_scalePixels'></a>
1821
1822---
1823
1824<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1825bool <a href='#SkPixmap_scalePixels'>scalePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality)const
1826</pre>
1827
1828Copies <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to <a href='#SkPixmap_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>, and
1829converting pixels to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>(). Returns true if
1830pixels are copied. Returns false if <a href='#SkPixmap_scalePixels_dst'>dst</a> address is nullptr, or <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is
1831less than <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
1832
1833Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
1834<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> must match.
1835If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match.
1836If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> must
1837match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match. Returns
1838false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
1839
1840Returns false if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
1841
1842Scales the <a href='SkImage_Reference#Image'>image</a>, with <a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>.
1843<a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> is fastest, typically implemented with
1844<a href='undocumented#Nearest_Neighbor'>nearest neighbor filter</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
1845<a href='undocumented#Bilerp'>bilerp filter</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
1846<a href='undocumented#Bilerp'>bilerp filter</a>, and  <a href='undocumented#MipMap'>mip-map filter</a> when <a href='undocumented#Size'>size</a> is reduced.
1847<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with  <a href='undocumented#BiCubic'>bicubic filter</a>.
1848
1849### Parameters
1850
1851<table>  <tr>    <td><a name='SkPixmap_scalePixels_dst'><code><strong>dst</strong></code></a></td>
1852    <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
1853  </tr>
1854  <tr>    <td><a name='SkPixmap_scalePixels_filterQuality'><code><strong>filterQuality</strong></code></a></td>
1855    <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
1856  </tr>
1857</table>
1858
1859<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
1860
1861### Return Value
1862
1863true if pixels are scaled to fit <a href='#SkPixmap_scalePixels_dst'>dst</a>
1864
1865### Example
1866
1867<div><fiddle-embed name="8e3c8a9c1d0d2e9b8bf66e24d274f792"></fiddle-embed></div>
1868
1869### See Also
1870
1871<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawBitmap'>drawBitmap</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_scalePixels'>scalePixels</a>
1872
1873<a name='SkPixmap_erase'></a>
1874
1875---
1876
1877<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1878bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset)const
1879</pre>
1880
1881Writes <a href='#SkPixmap_erase_color'>color</a> to pixels bounded by <a href='#SkPixmap_erase_subset'>subset</a>; returns true on success.
1882Returns false if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_erase_subset'>subset</a> does
1883not intersect <a href='#SkPixmap_bounds'>bounds()</a>.
1884
1885### Parameters
1886
1887<table>  <tr>    <td><a name='SkPixmap_erase_color'><code><strong>color</strong></code></a></td>
1888    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_color'>color</a> to write</td>
1889  </tr>
1890  <tr>    <td><a name='SkPixmap_erase_subset'><code><strong>subset</strong></code></a></td>
1891    <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> of written pixels</td>
1892  </tr>
1893</table>
1894
1895### Return Value
1896
1897true if pixels are changed
1898
1899### Example
1900
1901<div><fiddle-embed name="a0cdbafed4786788cc90681e7b294234"></fiddle-embed></div>
1902
1903### See Also
1904
1905<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_erase'>erase</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_clear'>clear</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawColor'>drawColor</a>
1906
1907<a name='SkPixmap_erase_2'></a>
1908
1909---
1910
1911<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1912bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>)const
1913</pre>
1914
1915Writes <a href='#SkPixmap_erase_2_color'>color</a> to pixels inside <a href='#SkPixmap_bounds'>bounds()</a>; returns true on success.
1916Returns false if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_bounds'>bounds()</a>
1917is empty.
1918
1919### Parameters
1920
1921<table>  <tr>    <td><a name='SkPixmap_erase_2_color'><code><strong>color</strong></code></a></td>
1922    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_2_color'>color</a> to write</td>
1923  </tr>
1924</table>
1925
1926### Return Value
1927
1928true if pixels are changed
1929
1930### Example
1931
1932<div><fiddle-embed name="838202e0d49cad2eb3eeb495834f6d63"></fiddle-embed></div>
1933
1934### See Also
1935
1936<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_erase'>erase</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_clear'>clear</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawColor'>drawColor</a>
1937
1938<a name='SkPixmap_erase_3'></a>
1939
1940---
1941
1942<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
1943bool <a href='#SkPixmap_erase'>erase</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr)const
1944</pre>
1945
1946Writes <a href='#SkPixmap_erase_3_color'>color</a> to pixels bounded by <a href='#SkPixmap_erase_3_subset'>subset</a>; returns true on success.
1947if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr, writes colors pixels inside <a href='#SkPixmap_bounds'>bounds()</a>. Returns false if
1948<a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, if <a href='#SkPixmap_erase_3_subset'>subset</a> is not nullptr and does
1949not intersect <a href='#SkPixmap_bounds'>bounds()</a>, or if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr and <a href='#SkPixmap_bounds'>bounds()</a> is empty.
1950
1951### Parameters
1952
1953<table>  <tr>    <td><a name='SkPixmap_erase_3_color'><code><strong>color</strong></code></a></td>
1954    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_3_color'>color</a> to write</td>
1955  </tr>
1956  <tr>    <td><a name='SkPixmap_erase_3_subset'><code><strong>subset</strong></code></a></td>
1957    <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> of pixels to write; may be nullptr</td>
1958  </tr>
1959</table>
1960
1961### Return Value
1962
1963true if pixels are changed
1964
1965### Example
1966
1967<div><fiddle-embed name="f884f3f46a565f052a5e252ae2f36e9b"></fiddle-embed></div>
1968
1969### See Also
1970
1971<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_erase'>erase</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_clear'>clear</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawColor'>drawColor</a>
1972
1973