Index: Source/platform/graphics/ImageBuffer.cpp |
diff --git a/Source/platform/graphics/ImageBuffer.cpp b/Source/platform/graphics/ImageBuffer.cpp |
index 74213e280821408ec7c084866bed333880c71649..7c1c32943be7f9626c45a5dd80d243c317fae131 100644 |
--- a/Source/platform/graphics/ImageBuffer.cpp |
+++ b/Source/platform/graphics/ImageBuffer.cpp |
@@ -317,7 +317,8 @@ |
canvas()->writePixels(info, srcAddr, srcBytesPerRow, destX, destY); |
} |
-static bool encodeImage(const ImageDataBuffer& source, const String& mimeType, const double* quality, Vector<char>* output) |
+template <typename T> |
+static bool encodeImage(T& source, const String& mimeType, const double* quality, Vector<char>* output) |
{ |
Vector<unsigned char>* encodedImage = reinterpret_cast<Vector<unsigned char>*>(output); |
@@ -342,6 +343,17 @@ |
return true; |
} |
+String ImageBuffer::toDataURL(const String& mimeType, const double* quality) const |
+{ |
+ ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType)); |
+ |
+ Vector<char> encodedImage; |
+ if (!isSurfaceValid() || !encodeImage(m_surface->bitmap(), mimeType, quality, &encodedImage)) |
+ return "data:,"; |
+ |
+ return "data:" + mimeType + ";base64," + base64Encode(encodedImage); |
+} |
+ |
String ImageDataBuffer::toDataURL(const String& mimeType, const double* quality) const |
{ |
ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType)); |