• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2009, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "SkImageEncoder.h"
18 #include "SkBitmap.h"
19 #include "SkStream.h"
20 #include "SkTemplates.h"
21 
~SkImageEncoder()22 SkImageEncoder::~SkImageEncoder() {}
23 
encodeStream(SkWStream * stream,const SkBitmap & bm,int quality)24 bool SkImageEncoder::encodeStream(SkWStream* stream, const SkBitmap& bm,
25                                   int quality) {
26     quality = SkMin32(100, SkMax32(0, quality));
27     return this->onEncode(stream, bm, quality);
28 }
29 
encodeFile(const char file[],const SkBitmap & bm,int quality)30 bool SkImageEncoder::encodeFile(const char file[], const SkBitmap& bm,
31                                 int quality) {
32     quality = SkMin32(100, SkMax32(0, quality));
33     SkFILEWStream   stream(file);
34     return this->onEncode(&stream, bm, quality);
35 }
36 
EncodeFile(const char file[],const SkBitmap & bm,Type t,int quality)37 bool SkImageEncoder::EncodeFile(const char file[], const SkBitmap& bm, Type t,
38                                 int quality) {
39     SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t));
40     return enc.get() && enc.get()->encodeFile(file, bm, quality);
41 }
42 
EncodeStream(SkWStream * stream,const SkBitmap & bm,Type t,int quality)43 bool SkImageEncoder::EncodeStream(SkWStream* stream, const SkBitmap& bm, Type t,
44                                 int quality) {
45     SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t));
46     return enc.get() && enc.get()->encodeStream(stream, bm, quality);
47 }
48 
49