blob: 540d93093b48787736adb494baf63dffcd46882d [file] [log] [blame]
Hal Canarydb683012016-11-23 08:55:18 -07001/*
2 * Copyright 2016 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkImageEncoderPriv_DEFINED
9#define SkImageEncoderPriv_DEFINED
10
11#include "SkImageEncoder.h"
Hal Canarydb683012016-11-23 08:55:18 -070012
Matt Sarett84014f02017-01-10 11:28:54 -050013struct SkEncodeOptions {
Matt Sarettcf3f2342017-03-23 15:32:25 -040014 SkTransferFunctionBehavior fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore;
Matt Sarett84014f02017-01-10 11:28:54 -050015};
16
Hal Canary1fcc4042016-11-30 17:07:59 -050017#ifdef SK_HAS_JPEG_LIBRARY
Matt Sarette95941f2017-01-27 18:16:40 -050018 bool SkEncodeImageAsJPEG(SkWStream*, const SkPixmap&, const SkEncodeOptions&);
Hal Canary1fcc4042016-11-30 17:07:59 -050019 bool SkEncodeImageAsJPEG(SkWStream*, const SkPixmap&, int quality);
20#else
21 #define SkEncodeImageAsJPEG(...) false
22#endif
Hal Canarydb683012016-11-23 08:55:18 -070023
Hal Canary1fcc4042016-11-30 17:07:59 -050024#ifdef SK_HAS_PNG_LIBRARY
Matt Sarett84014f02017-01-10 11:28:54 -050025 bool SkEncodeImageAsPNG(SkWStream*, const SkPixmap&, const SkEncodeOptions&);
Hal Canary1fcc4042016-11-30 17:07:59 -050026#else
27 #define SkEncodeImageAsPNG(...) false
28#endif
Hal Canarydb683012016-11-23 08:55:18 -070029
Hal Canary1fcc4042016-11-30 17:07:59 -050030#ifdef SK_HAS_WEBP_LIBRARY
Matt Sarett55213562017-01-23 19:37:37 -050031 bool SkEncodeImageAsWEBP(SkWStream*, const SkPixmap&, const SkEncodeOptions&);
Hal Canary1fcc4042016-11-30 17:07:59 -050032 bool SkEncodeImageAsWEBP(SkWStream*, const SkPixmap&, int quality);
33#else
34 #define SkEncodeImageAsWEBP(...) false
35#endif
Hal Canarydb683012016-11-23 08:55:18 -070036
Hal Canarydb683012016-11-23 08:55:18 -070037#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
Hal Canary1fcc4042016-11-30 17:07:59 -050038 bool SkEncodeImageWithCG(SkWStream*, const SkPixmap&, SkEncodedImageFormat);
39#else
40 #define SkEncodeImageWithCG(...) false
Hal Canarydb683012016-11-23 08:55:18 -070041#endif
42
Hal Canary1fcc4042016-11-30 17:07:59 -050043#ifdef SK_BUILD_FOR_WIN
44 bool SkEncodeImageWithWIC(SkWStream*, const SkPixmap&, SkEncodedImageFormat, int quality);
45#else
46 #define SkEncodeImageWithWIC(...) false
Hal Canarydb683012016-11-23 08:55:18 -070047#endif
48
Hal Canarydb683012016-11-23 08:55:18 -070049#endif // SkImageEncoderPriv_DEFINED