blob: 7748204fed6defc95fb404f44f7674f250d50190 [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 {
14 enum class PremulBehavior {
15 // Convert to a linear space before premultiplying or unpremultiplying.
16 kGammaCorrect,
17
18 // Ignore the transfer function when premultiplying or unpremultiplying.
19 kLegacy,
20 };
21
22 PremulBehavior fPremulBehavior = PremulBehavior::kLegacy;
23};
24
Hal Canary1fcc4042016-11-30 17:07:59 -050025#ifdef SK_HAS_JPEG_LIBRARY
26 bool SkEncodeImageAsJPEG(SkWStream*, const SkPixmap&, int quality);
27#else
28 #define SkEncodeImageAsJPEG(...) false
29#endif
Hal Canarydb683012016-11-23 08:55:18 -070030
Hal Canary1fcc4042016-11-30 17:07:59 -050031#ifdef SK_HAS_PNG_LIBRARY
Matt Sarett84014f02017-01-10 11:28:54 -050032 bool SkEncodeImageAsPNG(SkWStream*, const SkPixmap&, const SkEncodeOptions&);
Hal Canary1fcc4042016-11-30 17:07:59 -050033#else
34 #define SkEncodeImageAsPNG(...) false
35#endif
Hal Canarydb683012016-11-23 08:55:18 -070036
Hal Canary1fcc4042016-11-30 17:07:59 -050037#ifdef SK_HAS_WEBP_LIBRARY
38 bool SkEncodeImageAsWEBP(SkWStream*, const SkPixmap&, int quality);
39#else
40 #define SkEncodeImageAsWEBP(...) false
41#endif
Hal Canarydb683012016-11-23 08:55:18 -070042
Hal Canarydb683012016-11-23 08:55:18 -070043#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
Hal Canary1fcc4042016-11-30 17:07:59 -050044 bool SkEncodeImageWithCG(SkWStream*, const SkPixmap&, SkEncodedImageFormat);
45#else
46 #define SkEncodeImageWithCG(...) false
Hal Canarydb683012016-11-23 08:55:18 -070047#endif
48
Hal Canary1fcc4042016-11-30 17:07:59 -050049#ifdef SK_BUILD_FOR_WIN
50 bool SkEncodeImageWithWIC(SkWStream*, const SkPixmap&, SkEncodedImageFormat, int quality);
51#else
52 #define SkEncodeImageWithWIC(...) false
Hal Canarydb683012016-11-23 08:55:18 -070053#endif
54
Hal Canarydb683012016-11-23 08:55:18 -070055#endif // SkImageEncoderPriv_DEFINED