diff options
Diffstat (limited to 'include/core/SkBitmap.h')
-rw-r--r-- | include/core/SkBitmap.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h index d3c33a8e0..13e9aa372 100644 --- a/include/core/SkBitmap.h +++ b/include/core/SkBitmap.h @@ -643,6 +643,28 @@ public: } /** + * Copy the bitmap's pixels into the specified buffer (pixels + rowBytes), + * converting them into the requested format (SkImageInfo). The src pixels are read + * starting at the specified (srcX,srcY) offset, relative to the top-left corner. + * + * The specified ImageInfo and (srcX,srcY) offset specifies a source rectangle + * + * srcR.setXYWH(srcX, srcY, dstInfo.width(), dstInfo.height()); + * + * srcR is intersected with the bounds of the bitmap. If this intersection is not empty, + * then we have two sets of pixels (of equal size). Replace the dst pixels with the + * corresponding src pixels, performing any colortype/alphatype transformations needed + * (in the case where the src and dst have different colortypes or alphatypes). + * + * This call can fail, returning false, for several reasons: + * - If srcR does not intersect the bitmap bounds. + * - If the requested colortype/alphatype cannot be converted from the src's types. + * - If the src pixels are not available. + */ + bool readPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes, + int srcX, int srcY) const; + + /** * Returns true if this bitmap's pixels can be converted into the requested * colorType, such that copyTo() could succeed. */ |