Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: src/images/SkImageDecoder.cpp

Issue 14363003: Updates to skimage tool to use it for testing. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: GetFormat -> GetStreamFormat Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « include/images/SkImageEncoder.h ('k') | src/images/SkImageDecoder_FactoryRegistrar.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 8
9 #include "SkImageDecoder.h" 9 #include "SkImageDecoder.h"
10 #include "SkBitmap.h" 10 #include "SkBitmap.h"
11 #include "SkImagePriv.h" 11 #include "SkImagePriv.h"
12 #include "SkPixelRef.h" 12 #include "SkPixelRef.h"
13 #include "SkStream.h" 13 #include "SkStream.h"
14 #include "SkTemplates.h" 14 #include "SkTemplates.h"
15 #include "SkCanvas.h" 15 #include "SkCanvas.h"
16 16
17 SK_DEFINE_INST_COUNT(SkImageDecoder::Peeker) 17 SK_DEFINE_INST_COUNT(SkImageDecoder::Peeker)
18 SK_DEFINE_INST_COUNT(SkImageDecoder::Chooser) 18 SK_DEFINE_INST_COUNT(SkImageDecoder::Chooser)
19 SK_DEFINE_INST_COUNT(SkImageDecoderFactory) 19 SK_DEFINE_INST_COUNT(SkImageDecoderFactory)
20 20
21 const char *SkImageDecoder::sFormatName[] = {
22 "Unknown Format",
23 "BMP",
24 "GIF",
25 "ICO",
26 "JPEG",
27 "PNG",
28 "WBMP",
29 "WEBP",
30 };
31
32 static SkBitmap::Config gDeviceConfig = SkBitmap::kNo_Config; 21 static SkBitmap::Config gDeviceConfig = SkBitmap::kNo_Config;
33 22
34 SkBitmap::Config SkImageDecoder::GetDeviceConfig() 23 SkBitmap::Config SkImageDecoder::GetDeviceConfig()
35 { 24 {
36 return gDeviceConfig; 25 return gDeviceConfig;
37 } 26 }
38 27
39 void SkImageDecoder::SetDeviceConfig(SkBitmap::Config config) 28 void SkImageDecoder::SetDeviceConfig(SkBitmap::Config config)
40 { 29 {
41 gDeviceConfig = config; 30 gDeviceConfig = config;
(...skipping 11 matching lines...) Expand all
53 SkSafeUnref(fPeeker); 42 SkSafeUnref(fPeeker);
54 SkSafeUnref(fChooser); 43 SkSafeUnref(fChooser);
55 SkSafeUnref(fAllocator); 44 SkSafeUnref(fAllocator);
56 } 45 }
57 46
58 SkImageDecoder::Format SkImageDecoder::getFormat() const { 47 SkImageDecoder::Format SkImageDecoder::getFormat() const {
59 return kUnknown_Format; 48 return kUnknown_Format;
60 } 49 }
61 50
62 const char* SkImageDecoder::getFormatName() const { 51 const char* SkImageDecoder::getFormatName() const {
63 SkASSERT(SK_ARRAY_COUNT(sFormatName) == kLastKnownFormat); 52 switch (this->getFormat()) {
64 return sFormatName[this->getFormat()]; 53 case kUnknown_Format:
54 return "Unknown Format";
55 case kBMP_Format:
56 return "BMP";
57 case kGIF_Format:
58 return "GIF";
59 case kICO_Format:
60 return "ICO";
61 case kJPEG_Format:
62 return "JPEG";
63 case kPNG_Format:
64 return "PNG";
65 case kWBMP_Format:
66 return "WBMP";
67 case kWEBP_Format:
68 return "WEBP";
69 default:
70 SkASSERT(!"Invalid format type!");
71 }
72 return "Unknown Format";
65 } 73 }
66 74
67 SkImageDecoder::Peeker* SkImageDecoder::setPeeker(Peeker* peeker) { 75 SkImageDecoder::Peeker* SkImageDecoder::setPeeker(Peeker* peeker) {
68 SkRefCnt_SafeAssign(fPeeker, peeker); 76 SkRefCnt_SafeAssign(fPeeker, peeker);
69 return peeker; 77 return peeker;
70 } 78 }
71 79
72 SkImageDecoder::Chooser* SkImageDecoder::setChooser(Chooser* chooser) { 80 SkImageDecoder::Chooser* SkImageDecoder::setChooser(Chooser* chooser) {
73 SkRefCnt_SafeAssign(fChooser, chooser); 81 SkRefCnt_SafeAssign(fChooser, chooser);
74 return chooser; 82 return chooser;
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 SkASSERT(stream); 322 SkASSERT(stream);
315 SkASSERT(bm); 323 SkASSERT(bm);
316 324
317 bool success = false; 325 bool success = false;
318 SkImageDecoder* codec = SkImageDecoder::Factory(stream); 326 SkImageDecoder* codec = SkImageDecoder::Factory(stream);
319 327
320 if (NULL != codec) { 328 if (NULL != codec) {
321 success = codec->decode(stream, bm, pref, mode); 329 success = codec->decode(stream, bm, pref, mode);
322 if (success && format) { 330 if (success && format) {
323 *format = codec->getFormat(); 331 *format = codec->getFormat();
332 if (kUnknown_Format == *format) {
333 if (stream->rewind()) {
334 *format = GetStreamFormat(stream);
335 }
336 }
324 } 337 }
325 delete codec; 338 delete codec;
326 } 339 }
327 return success; 340 return success;
328 } 341 }
OLDNEW
« no previous file with comments | « include/images/SkImageEncoder.h ('k') | src/images/SkImageDecoder_FactoryRegistrar.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698