Index: Source/platform/graphics/ImageBuffer.cpp |
diff --git a/Source/platform/graphics/ImageBuffer.cpp b/Source/platform/graphics/ImageBuffer.cpp |
index ece9dc7433d21ba3177ece5950bb03cc5136dd95..809f556cda7292a611a66a97af1ca3871aa2c925 100644 |
--- a/Source/platform/graphics/ImageBuffer.cpp |
+++ b/Source/platform/graphics/ImageBuffer.cpp |
@@ -351,6 +351,12 @@ static bool encodeImage(const ImageDataBuffer& source, const String& mimeType, c |
compressionQuality = static_cast<int>(*quality * 100 + 0.5); |
if (!JPEGImageEncoder::encode(source, compressionQuality, encodedImage)) |
return false; |
+ } else if (mimeType == "image/webplossless") { |
+ int compressionQuality = WEBPImageEncoder::DefaultCompressionQuality; |
+ if (quality && *quality >= 0.0 && *quality <= 1.0) |
+ compressionQuality = static_cast<int>(*quality * 100 + 0.5); |
+ if (!WEBPImageEncoder::encode(source, compressionQuality, encodedImage, WEBPImageEncoder::Lossless)) |
+ return false; |
} else if (mimeType == "image/webp") { |
int compressionQuality = WEBPImageEncoder::DefaultCompressionQuality; |
if (quality && *quality >= 0.0 && *quality <= 1.0) |
@@ -374,7 +380,13 @@ String ImageDataBuffer::toDataURL(const String& mimeType, const double* quality) |
if (!encodeImage(*this, mimeType, quality, &encodedImage)) |
return "data:,"; |
- return "data:" + mimeType + ";base64," + base64Encode(encodedImage); |
+ // webplossless is an encoder selector: map it to the actual mimeType "image/webp". |
+ |
acterhd
2015/08/27 17:18:19
I'm used ternary operator for replace mimes.
|
+ String encodedImageMimeType = mimeType; |
+ if (mimeType == "image/webplossless") |
+ encodedImageMimeType = String("image/webp"); |
+ |
+ return "data:" + encodedImageMimeType + ";base64," + base64Encode(encodedImage); |
} |
} // namespace blink |