aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkBitmap.h
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2014-07-12 12:26:36 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-07-12 12:26:36 -0700
commitdebba5c3d091159149f8a88ab5dcd44dd72e0dc7 (patch)
tree2ccf7f439aba044eabaaa43739dba23e544586c9 /include/core/SkBitmap.h
parentfb747e2c745896dd94425ff690483ae3838e88fe (diff)
Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels
usning it. Revert "Revert of add readPixels() to SkBitmap (https://codereview.chromium.org/377303002/)" This reverts commit d08cb905a7cc80d8fb868bbd14fffe1cd68adcce. R=reed@chromium.org TBR=scroggo@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/388803007
Diffstat (limited to 'include/core/SkBitmap.h')
-rw-r--r--include/core/SkBitmap.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h
index 51e9a9243a..541db79bb3 100644
--- a/include/core/SkBitmap.h
+++ b/include/core/SkBitmap.h
@@ -591,6 +591,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.
*/