1db6830162eca5b94e61d9825ec93306fc615d204Hal Canary/* 2db6830162eca5b94e61d9825ec93306fc615d204Hal Canary * Copyright 2016 Google Inc. 3db6830162eca5b94e61d9825ec93306fc615d204Hal Canary * 4db6830162eca5b94e61d9825ec93306fc615d204Hal Canary * Use of this source code is governed by a BSD-style license that can be 5db6830162eca5b94e61d9825ec93306fc615d204Hal Canary * found in the LICENSE file. 6db6830162eca5b94e61d9825ec93306fc615d204Hal Canary */ 7db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 8db6830162eca5b94e61d9825ec93306fc615d204Hal Canary#ifndef SkImageEncoderPriv_DEFINED 9db6830162eca5b94e61d9825ec93306fc615d204Hal Canary#define SkImageEncoderPriv_DEFINED 10db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 11db6830162eca5b94e61d9825ec93306fc615d204Hal Canary#include "SkImageEncoder.h" 12db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 1384014f03a90d137c0f5c95e15c1e5f8503df7101Matt Sarettstruct SkEncodeOptions { 14cf3f2347c8933596aeba873d4ece597a9339392fMatt Sarett SkTransferFunctionBehavior fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore; 1584014f03a90d137c0f5c95e15c1e5f8503df7101Matt Sarett}; 1684014f03a90d137c0f5c95e15c1e5f8503df7101Matt Sarett 171fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#ifdef SK_HAS_JPEG_LIBRARY 18e95941f2c61d8bcb5aaf60968e4391a1c7a0d593Matt Sarett bool SkEncodeImageAsJPEG(SkWStream*, const SkPixmap&, const SkEncodeOptions&); 191fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary bool SkEncodeImageAsJPEG(SkWStream*, const SkPixmap&, int quality); 201fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#else 211fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary #define SkEncodeImageAsJPEG(...) false 221fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#endif 23db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 241fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#ifdef SK_HAS_PNG_LIBRARY 2584014f03a90d137c0f5c95e15c1e5f8503df7101Matt Sarett bool SkEncodeImageAsPNG(SkWStream*, const SkPixmap&, const SkEncodeOptions&); 261fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#else 271fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary #define SkEncodeImageAsPNG(...) false 281fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#endif 29db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 301fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#ifdef SK_HAS_WEBP_LIBRARY 3155213562f9a63cbc324833fdd1c16cc79646515aMatt Sarett bool SkEncodeImageAsWEBP(SkWStream*, const SkPixmap&, const SkEncodeOptions&); 321fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary bool SkEncodeImageAsWEBP(SkWStream*, const SkPixmap&, int quality); 331fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#else 341fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary #define SkEncodeImageAsWEBP(...) false 351fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#endif 36db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 37db6830162eca5b94e61d9825ec93306fc615d204Hal Canary#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) 381fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary bool SkEncodeImageWithCG(SkWStream*, const SkPixmap&, SkEncodedImageFormat); 391fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#else 401fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary #define SkEncodeImageWithCG(...) false 41db6830162eca5b94e61d9825ec93306fc615d204Hal Canary#endif 42db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 431fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#ifdef SK_BUILD_FOR_WIN 441fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary bool SkEncodeImageWithWIC(SkWStream*, const SkPixmap&, SkEncodedImageFormat, int quality); 451fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary#else 461fcc40474f1ad1f522d0a61086e25a71ca0a6881Hal Canary #define SkEncodeImageWithWIC(...) false 47db6830162eca5b94e61d9825ec93306fc615d204Hal Canary#endif 48db6830162eca5b94e61d9825ec93306fc615d204Hal Canary 49db6830162eca5b94e61d9825ec93306fc615d204Hal Canary#endif // SkImageEncoderPriv_DEFINED 50