1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/skia/trunk/src/images/SkImageEncoder.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,52 @@ 1.4 +/* 1.5 + * Copyright 2009 The Android Open Source Project 1.6 + * 1.7 + * Use of this source code is governed by a BSD-style license that can be 1.8 + * found in the LICENSE file. 1.9 + */ 1.10 + 1.11 +#include "SkImageEncoder.h" 1.12 +#include "SkBitmap.h" 1.13 +#include "SkStream.h" 1.14 +#include "SkTemplates.h" 1.15 + 1.16 +SkImageEncoder::~SkImageEncoder() {} 1.17 + 1.18 +bool SkImageEncoder::encodeStream(SkWStream* stream, const SkBitmap& bm, 1.19 + int quality) { 1.20 + quality = SkMin32(100, SkMax32(0, quality)); 1.21 + return this->onEncode(stream, bm, quality); 1.22 +} 1.23 + 1.24 +bool SkImageEncoder::encodeFile(const char file[], const SkBitmap& bm, 1.25 + int quality) { 1.26 + quality = SkMin32(100, SkMax32(0, quality)); 1.27 + SkFILEWStream stream(file); 1.28 + return this->onEncode(&stream, bm, quality); 1.29 +} 1.30 + 1.31 +SkData* SkImageEncoder::encodeData(const SkBitmap& bm, int quality) { 1.32 + SkDynamicMemoryWStream stream; 1.33 + quality = SkMin32(100, SkMax32(0, quality)); 1.34 + if (this->onEncode(&stream, bm, quality)) { 1.35 + return stream.copyToData(); 1.36 + } 1.37 + return NULL; 1.38 +} 1.39 + 1.40 +bool SkImageEncoder::EncodeFile(const char file[], const SkBitmap& bm, Type t, 1.41 + int quality) { 1.42 + SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t)); 1.43 + return enc.get() && enc.get()->encodeFile(file, bm, quality); 1.44 +} 1.45 + 1.46 +bool SkImageEncoder::EncodeStream(SkWStream* stream, const SkBitmap& bm, Type t, 1.47 + int quality) { 1.48 + SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t)); 1.49 + return enc.get() && enc.get()->encodeStream(stream, bm, quality); 1.50 +} 1.51 + 1.52 +SkData* SkImageEncoder::EncodeData(const SkBitmap& bm, Type t, int quality) { 1.53 + SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t)); 1.54 + return enc.get() ? enc.get()->encodeData(bm, quality) : NULL; 1.55 +}