From d5a16911bb0da6b03daee6e9dd896429c7f8e8a1 Mon Sep 17 00:00:00 2001 From: Matt Sarett Date: Tue, 16 May 2017 17:06:52 -0400 Subject: Add support for webp lossless compression Bug: 713862 Change-Id: I8dcc6506338f3c54fb14a78620e7daaadadfedde Reviewed-on: https://skia-review.googlesource.com/17073 Reviewed-by: Mike Reed Reviewed-by: Leon Scroggins Commit-Queue: Matt Sarett --- include/encode/SkWebpEncoder.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'include/encode') diff --git a/include/encode/SkWebpEncoder.h b/include/encode/SkWebpEncoder.h index 8d894a442c..97d2742920 100644 --- a/include/encode/SkWebpEncoder.h +++ b/include/encode/SkWebpEncoder.h @@ -14,10 +14,25 @@ class SkWStream; namespace SkWebpEncoder { + enum class SK_API Compression { + kLossy, + kLossless, + }; + struct SK_API Options { /** - * |fQuality| must be in [0.0f, 100.0f] where 0.0f corresponds to the lowest quality. + * |fCompression| determines whether we will use webp lossy or lossless compression. + * + * |fQuality| must be in [0.0f, 100.0f]. + * If |fCompression| is kLossy, |fQuality| corresponds to the visual quality of the + * encoding. Decreasing the quality will result in a smaller encoded image. + * If |fCompression| is kLossless, |fQuality| corresponds to the amount of effort + * put into the encoding. Lower values will compress faster into larger files, + * while larger values will compress slower into smaller files. + * + * This scheme is designed to match the libwebp API. */ + Compression fCompression = Compression::kLossy; float fQuality = 100.0f; /** -- cgit v1.2.3