1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 97def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com#include "SkBitmap.h" 107def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com#include "SkImage.h" 116efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com#include "SkImageDecoder.h" 125a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com#include "SkImageEncoder.h" 136efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com#include "SkMovie.h" 145a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com 157def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comclass SkColorTable; 165a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.comclass SkStream; 17b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comclass SkStreamRewindable; 186efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 197def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com// Empty implementations for SkImageDecoder. 207def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 21e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.comSkImageDecoder::SkImageDecoder() {} 22e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.com 23e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.comSkImageDecoder::~SkImageDecoder() {} 24e5c9c4960cbbb7aa26ba906439ed620d55879dadscroggo@google.com 25b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comSkImageDecoder* SkImageDecoder::Factory(SkStreamRewindable*) { 266efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com return NULL; 276efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com} 286efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 29468142b2f50de055f00d5684515d962777da5131scroggo@google.comvoid SkImageDecoder::copyFieldsToOther(SkImageDecoder* ) {} 30468142b2f50de055f00d5684515d962777da5131scroggo@google.com 31bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::DecodeFile(const char[], SkBitmap*, SkColorType, Mode, Format*) { 326efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com return false; 336efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com} 346efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 35bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::decode(SkStream*, SkBitmap*, SkColorType, Mode) { 365a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return false; 375a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com} 386efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 39bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::DecodeStream(SkStreamRewindable*, SkBitmap*, SkColorType, Mode, Format*) { 405a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return false; 415a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com} 426efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 43bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::DecodeMemory(const void*, size_t, SkBitmap*, SkColorType, Mode, Format*) { 447def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return false; 457def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 467def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 47b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.combool SkImageDecoder::buildTileIndex(SkStreamRewindable*, int *width, int *height) { 487def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return false; 497def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 507def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 51bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71ereedbool SkImageDecoder::decodeSubset(SkBitmap*, const SkIRect&, SkColorType) { 525a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return false; 535a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com} 546efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 557def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkImageDecoder::Format SkImageDecoder::getFormat() const { 567def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return kUnknown_Format; 577def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 587def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 59b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comSkImageDecoder::Format SkImageDecoder::GetStreamFormat(SkStreamRewindable*) { 607def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return kUnknown_Format; 617def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 627def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 637def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comconst char* SkImageDecoder::GetFormatName(Format) { 645a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return NULL; 655a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com} 667def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 677def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkImageDecoder::Peeker* SkImageDecoder::setPeeker(Peeker*) { 687def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return NULL; 697def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 707def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 715926b86b90c68bffefbdc8639e41b5bc9102cec6reed#ifdef SK_SUPPORT_LEGACY_IMAGEDECODER_CHOOSER 727def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkImageDecoder::Chooser* SkImageDecoder::setChooser(Chooser*) { 737def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return NULL; 747def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 755926b86b90c68bffefbdc8639e41b5bc9102cec6reed#endif 767def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 777def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkBitmap::Allocator* SkImageDecoder::setAllocator(SkBitmap::Allocator*) { 787def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return NULL; 797def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 807def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 817def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comvoid SkImageDecoder::setSampleSize(int) {} 827def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 837def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.combool SkImageDecoder::cropBitmap(SkBitmap*, SkBitmap*, int, int, int, int, int, 847def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com int, int) { 857def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return false; 867def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 877def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 88f0419e96b4b52b85fafd0d589c56944841dcda06scroggo#ifdef SK_SUPPORT_LEGACY_IMAGEDECODER_CHOOSER 896c22573edb234ad14df947278cfed010669a39a7reedbool SkImageDecoder::chooseFromOneChoice(SkColorType, int, int) const { 907def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return false; 917def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 92f0419e96b4b52b85fafd0d589c56944841dcda06scroggo#endif 937def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 947def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.combool SkImageDecoder::allocPixelRef(SkBitmap*, SkColorTable*) const { 957def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return false; 967def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 977def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 985a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com///////////////////////////////////////////////////////////////////////// 996efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 1007def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com// Empty implementation for SkMovie. 1017def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 102b5571b3324cf18629a255ec85e189447069c9b14scroggo@google.comSkMovie* SkMovie::DecodeStream(SkStreamRewindable* stream) { 1036efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com return NULL; 1046efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com} 1056efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 1066efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com///////////////////////////////////////////////////////////////////////// 1076efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 1087def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com// Empty implementations for SkImageEncoder. 1097def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 1106efdc47afc8bb24603fc0d15146ada609b728f2freed@android.comSkImageEncoder* SkImageEncoder::Create(Type t) { 1115a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return NULL; 1126efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com} 1136efdc47afc8bb24603fc0d15146ada609b728f2freed@android.com 1145a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.combool SkImageEncoder::EncodeFile(const char file[], const SkBitmap&, Type, int quality) { 1155a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return false; 1165a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com} 1175a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com 1185a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.combool SkImageEncoder::EncodeStream(SkWStream*, const SkBitmap&, SkImageEncoder::Type, int) { 1195a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return false; 1205a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com} 1215a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com 1227def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkData* SkImageEncoder::EncodeData(const SkBitmap&, Type, int quality) { 1237def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return NULL; 1247def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 1257def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 1265a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.combool SkImageEncoder::encodeStream(SkWStream*, const SkBitmap&, int) { 1275a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com return false; 1285a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com} 1295a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com 1307def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.comSkData* SkImageEncoder::encodeData(const SkBitmap&, int) { 1317def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return NULL; 1327def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 1337def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com 1347def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.combool SkImageEncoder::encodeFile(const char file[], const SkBitmap& bm, int quality) { 1357def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com return false; 1367def5e1630d47cdbfa4b58a9c86bc060693c4d79scroggo@google.com} 1375a7c6be72b940dde8ff6ad2485a09aecd56a2660scroggo@google.com///////////////////////////////////////////////////////////////////////// 138