1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/gfx/image/image_png_rep.h"
7 #include "base/logging.h"
8 #include "third_party/skia/include/core/SkBitmap.h"
9 #include "ui/gfx/codec/png_codec.h"
10 #include "ui/gfx/size.h"
14 ImagePNGRep::ImagePNGRep()
19 ImagePNGRep::ImagePNGRep(const scoped_refptr
<base::RefCountedMemory
>& data
,
25 ImagePNGRep::~ImagePNGRep() {
28 gfx::Size
ImagePNGRep::Size() const {
29 // The only way to get the width and height of a raw PNG stream, at least
30 // using the gfx::PNGCodec API, is to decode the whole thing.
31 CHECK(raw_data
.get());
33 if (!gfx::PNGCodec::Decode(raw_data
->front(), raw_data
->size(),
35 LOG(ERROR
) << "Unable to decode PNG.";
36 return gfx::Size(0, 0);
38 return gfx::Size(bitmap
.width(), bitmap
.height());