Title: [149033] trunk/Source/WebCore
- Revision
- 149033
- Author
- [email protected]
- Date
- 2013-04-24 07:10:47 -0700 (Wed, 24 Apr 2013)
Log Message
[BlackBerry] Add support for JPEG image quality during encoding.
https://bugs.webkit.org/show_bug.cgi?id=105773
Patch by George Staikos <[email protected]> on 2013-04-24
Reviewed by Xan Lopez.
PR 271611
Internally reviewed by Liam Quinn.
Pass the quality flag into the encoder, with a default of 65
Covered by existing tests.
* platform/image-encoders/JPEGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToJPEG):
* platform/image-encoders/JPEGImageEncoder.h:
(WebCore):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (149032 => 149033)
--- trunk/Source/WebCore/ChangeLog 2013-04-24 13:54:27 UTC (rev 149032)
+++ trunk/Source/WebCore/ChangeLog 2013-04-24 14:10:47 UTC (rev 149033)
@@ -1,3 +1,22 @@
+2013-04-24 George Staikos <[email protected]>
+
+ [BlackBerry] Add support for JPEG image quality during encoding.
+ https://bugs.webkit.org/show_bug.cgi?id=105773
+
+ Reviewed by Xan Lopez.
+
+ PR 271611
+ Internally reviewed by Liam Quinn.
+
+ Pass the quality flag into the encoder, with a default of 65
+
+ Covered by existing tests.
+
+ * platform/image-encoders/JPEGImageEncoder.cpp:
+ (WebCore::compressRGBABigEndianToJPEG):
+ * platform/image-encoders/JPEGImageEncoder.h:
+ (WebCore):
+
2013-04-24 Csaba Osztrogonác <[email protected]>
Fix cast-align WebCore/platform/graphics/GraphicsContext3D.cpp on ARM
Modified: trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp (149032 => 149033)
--- trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp 2013-04-24 13:54:27 UTC (rev 149032)
+++ trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp 2013-04-24 14:10:47 UTC (rev 149033)
@@ -83,7 +83,7 @@
longjmp(err->m_setjmpBuffer, -1);
}
-bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize& size, Vector<char>& jpegData)
+bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize& size, Vector<char>& jpegData, const double* quality)
{
struct jpeg_compress_struct compressData;
JPEGCompressErrorMgr err;
@@ -103,7 +103,10 @@
compressData.input_components = 3;
compressData.in_color_space = JCS_RGB;
jpeg_set_defaults(&compressData);
- jpeg_set_quality(&compressData, 65, FALSE);
+ int compressionQuality = 65;
+ if (quality && *quality >= 0.0 && *quality <= 1.0)
+ compressionQuality = static_cast<int>(*quality * 100 + 0.5);
+ jpeg_set_quality(&compressData, compressionQuality, FALSE);
// rowBuffer must be defined here so that its destructor is always called even when "setjmp" catches an error.
Vector<JSAMPLE, 600 * 3> rowBuffer;
Modified: trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h (149032 => 149033)
--- trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h 2013-04-24 13:54:27 UTC (rev 149032)
+++ trunk/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h 2013-04-24 14:10:47 UTC (rev 149033)
@@ -26,7 +26,7 @@
namespace WebCore {
class IntSize;
-bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize& size, Vector<char>& jpegData);
+bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize&, Vector<char>& jpegData, const double* quality = 0);
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes