Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1205)

Unified Diff: Source/core/page/ImageBitmap.cpp

Issue 20748002: Blob creation methods for ImageBitmap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Review comment fixes. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/page/ImageBitmap.cpp
diff --git a/Source/core/page/ImageBitmap.cpp b/Source/core/page/ImageBitmap.cpp
index ffe3af0dfa65d59ae71c04122efe6fad942d5949..7d6bf45e937ed591b1d40759b59527aa17165f89 100644
--- a/Source/core/page/ImageBitmap.cpp
+++ b/Source/core/page/ImageBitmap.cpp
@@ -119,6 +119,17 @@ ImageBitmap::ImageBitmap(ImageBitmap* bitmap, const IntRect& cropRect)
ScriptWrappable::init(this);
}
+ImageBitmap::ImageBitmap(Image* image, const IntRect& cropRect)
+ : m_cropRect(cropRect)
+ , m_imageElement(0)
+{
+ IntRect srcRect = intersection(cropRect, IntRect(IntPoint(), image->size()));
+ m_bitmap = cropImage(image, cropRect);
+ m_bitmapRect = IntRect(IntPoint(max(0, -cropRect.x()), max(0, -cropRect.y())), srcRect.size());
+
+ ScriptWrappable::init(this);
+}
+
ImageBitmap::~ImageBitmap()
{
if (m_imageElement)
@@ -128,36 +139,37 @@ ImageBitmap::~ImageBitmap()
PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLImageElement* image, const IntRect& cropRect)
{
IntRect normalizedCropRect = normalizeRect(cropRect);
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(image, normalizedCropRect)));
- return imageBitmap.release();
+ return adoptRef(new ImageBitmap(image, normalizedCropRect));
}
PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLVideoElement* video, const IntRect& cropRect)
{
IntRect normalizedCropRect = normalizeRect(cropRect);
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(video, normalizedCropRect)));
- return imageBitmap.release();
+ return adoptRef(new ImageBitmap(video, normalizedCropRect));
}
PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLCanvasElement* canvas, const IntRect& cropRect)
{
IntRect normalizedCropRect = normalizeRect(cropRect);
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(canvas, normalizedCropRect)));
- return imageBitmap.release();
+ return adoptRef(new ImageBitmap(canvas, normalizedCropRect));
}
PassRefPtr<ImageBitmap> ImageBitmap::create(ImageData* data, const IntRect& cropRect)
{
IntRect normalizedCropRect = normalizeRect(cropRect);
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(data, normalizedCropRect)));
- return imageBitmap.release();
+ return adoptRef(new ImageBitmap(data, normalizedCropRect));
}
PassRefPtr<ImageBitmap> ImageBitmap::create(ImageBitmap* bitmap, const IntRect& cropRect)
{
IntRect normalizedCropRect = normalizeRect(cropRect);
- RefPtr<ImageBitmap> imageBitmap(adoptRef(new ImageBitmap(bitmap, normalizedCropRect)));
- return imageBitmap.release();
+ return adoptRef(new ImageBitmap(bitmap, normalizedCropRect));
+}
+
+PassRefPtr<ImageBitmap> ImageBitmap::create(Image* image, const IntRect& cropRect)
+{
+ IntRect normalizedCropRect = normalizeRect(cropRect);
+ return adoptRef(new ImageBitmap(image, normalizedCropRect));
}
void ImageBitmap::notifyImageSourceChanged()

Powered by Google App Engine
This is Rietveld 408576698