+
+ /**
+ * Return a copy of the image's pixels, limiting them to the subset
+ * rectangle's intersection wit the image bounds. If subset is NULL, then
+ * the entire image will be considered.
+ *
+ * If the bitmap's pixels have already been allocated, then readPixels()
+ * will succeed only if it can support converting the image's pixels into
+ * the bitmap's ColorType/AlphaType. Any pixels in the bitmap that do not
+ * intersect with the image's bounds and the subset (if not null) will be
+ * left untouched.
+ *
+ * If the bitmap is initially empty/unallocated, then it will be allocated
+ * using the default allocator, and the ColorType/AlphaType will be chosen
+ * to most closely fit the image's configuration.
+ *
+ * On failure, false will be returned, and bitmap will unmodified.
+ */
+ // On ice for now:
+ // - should it respect the particular colortype/alphatype of the src
+ // - should it have separate entrypoints for preallocated and not bitmaps?
+ // - isn't it enough to allow the caller to draw() the image into a canvas?
+ bool readPixels(SkBitmap* bitmap, const SkIRect* subset = NULL) const;