blob: 23f46e49821732ef4a3387a1f012affe0fdc266b [file] [log] [blame]
reed@android.comb08eb2b2009-01-06 20:16:26 +00001/*
epoger@google.comec3ed6a2011-07-28 14:26:00 +00002 * Copyright 2009 The Android Open Source Project
reed@android.comb08eb2b2009-01-06 20:16:26 +00003 *
epoger@google.comec3ed6a2011-07-28 14:26:00 +00004 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
reed@android.comb08eb2b2009-01-06 20:16:26 +00006 */
7
Hal Canarydb683012016-11-23 08:55:18 -07008#include "SkImageEncoderPriv.h"
Matt Sarett26b44df2017-05-02 16:04:56 -04009#include "SkJpegEncoder.h"
reed@android.comb08eb2b2009-01-06 20:16:26 +000010
Hal Canarydb683012016-11-23 08:55:18 -070011bool SkEncodeImage(SkWStream* dst, const SkPixmap& src,
12 SkEncodedImageFormat format, int quality) {
Hal Canary1fcc4042016-11-30 17:07:59 -050013 #ifdef SK_USE_CG_ENCODER
14 (void)quality;
15 return SkEncodeImageWithCG(dst, src, format);
16 #elif SK_USE_WIC_ENCODER
17 return SkEncodeImageWithWIC(dst, src, format, quality);
18 #else
19 switch(format) {
Matt Sarett26b44df2017-05-02 16:04:56 -040020 case SkEncodedImageFormat::kJPEG: {
21 SkJpegEncoder::Options opts;
22 opts.fQuality = quality;
23 return SkJpegEncoder::Encode(dst, src, opts);
24 }
Matt Sarett84014f02017-01-10 11:28:54 -050025 case SkEncodedImageFormat::kPNG:
26 return SkEncodeImageAsPNG(dst, src, SkEncodeOptions());
27 case SkEncodedImageFormat::kWEBP:
28 return SkEncodeImageAsWEBP(dst, src, quality);
29 default:
30 return false;
Hal Canary1fcc4042016-11-30 17:07:59 -050031 }
32 #endif
reed53b9e2e2014-12-19 12:26:07 -080033}