michael@0: /* michael@0: * Copyright 2009 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: #include "SkImageEncoder.h" michael@0: #include "SkBitmap.h" michael@0: #include "SkStream.h" michael@0: #include "SkTemplates.h" michael@0: michael@0: SkImageEncoder::~SkImageEncoder() {} michael@0: michael@0: bool SkImageEncoder::encodeStream(SkWStream* stream, const SkBitmap& bm, michael@0: int quality) { michael@0: quality = SkMin32(100, SkMax32(0, quality)); michael@0: return this->onEncode(stream, bm, quality); michael@0: } michael@0: michael@0: bool SkImageEncoder::encodeFile(const char file[], const SkBitmap& bm, michael@0: int quality) { michael@0: quality = SkMin32(100, SkMax32(0, quality)); michael@0: SkFILEWStream stream(file); michael@0: return this->onEncode(&stream, bm, quality); michael@0: } michael@0: michael@0: SkData* SkImageEncoder::encodeData(const SkBitmap& bm, int quality) { michael@0: SkDynamicMemoryWStream stream; michael@0: quality = SkMin32(100, SkMax32(0, quality)); michael@0: if (this->onEncode(&stream, bm, quality)) { michael@0: return stream.copyToData(); michael@0: } michael@0: return NULL; michael@0: } michael@0: michael@0: bool SkImageEncoder::EncodeFile(const char file[], const SkBitmap& bm, Type t, michael@0: int quality) { michael@0: SkAutoTDelete enc(SkImageEncoder::Create(t)); michael@0: return enc.get() && enc.get()->encodeFile(file, bm, quality); michael@0: } michael@0: michael@0: bool SkImageEncoder::EncodeStream(SkWStream* stream, const SkBitmap& bm, Type t, michael@0: int quality) { michael@0: SkAutoTDelete enc(SkImageEncoder::Create(t)); michael@0: return enc.get() && enc.get()->encodeStream(stream, bm, quality); michael@0: } michael@0: michael@0: SkData* SkImageEncoder::EncodeData(const SkBitmap& bm, Type t, int quality) { michael@0: SkAutoTDelete enc(SkImageEncoder::Create(t)); michael@0: return enc.get() ? enc.get()->encodeData(bm, quality) : NULL; michael@0: }