From 5411a60e0d7370a5d47b5049de845a06fe52e98b Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Wed, 18 Oct 2017 11:43:29 -0400 Subject: Add an Option for orientation on JPEG encodes Move Origin to its own header so that SkPixmap and SkJpegEncoder need not depend on SkCodec. Add libexif, which is already used by Android, and use it to write the orientation. Write a makefile based on the Android.bp in Android, minus warnings. (libexif has an LGPL license.) Add a test that verifies all the orientations work. Optionally enable writing the orientation (and therefore including libexif). Chromium does not currently need it, and Android does not expose an API that would allow using it. Disable on Windows, where we still have build errors to fix. Bug: skia:7138 Change-Id: Iaeff44c36aebe0e639666979dc00e1b7594bbeb1 Reviewed-on: https://skia-review.googlesource.com/60721 Commit-Queue: Leon Scroggins Reviewed-by: Mike Klein Reviewed-by: Mike Reed --- include/encode/SkJpegEncoder.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'include/encode') diff --git a/include/encode/SkJpegEncoder.h b/include/encode/SkJpegEncoder.h index fd7c204161..a094e3fb9c 100644 --- a/include/encode/SkJpegEncoder.h +++ b/include/encode/SkJpegEncoder.h @@ -9,6 +9,9 @@ #define SkJpegEncoder_DEFINED #include "SkEncoder.h" +#ifdef SK_HAS_EXIF_LIBRARY +#include "SkEncodedOrigin.h" +#endif class SkJpegEncoderMgr; class SkWStream; @@ -62,6 +65,13 @@ public: */ AlphaOption fAlphaOption = AlphaOption::kIgnore; SkTransferFunctionBehavior fBlendBehavior = SkTransferFunctionBehavior::kRespect; + +#ifdef SK_HAS_EXIF_LIBRARY + /** + * Origin to be written to EXIF, if anything other than the default. + */ + SkEncodedOrigin fOrigin = kDefault_SkEncodedOrigin; +#endif }; /** -- cgit v1.2.3