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.
4
5#ifndef UI_GFX_IMAGE_IMAGE_PNG_REP_H_
6#define UI_GFX_IMAGE_IMAGE_PNG_REP_H_
7
8#include "base/memory/ref_counted_memory.h"
9#include "ui/gfx/gfx_export.h"
10
11namespace gfx {
12class Size;
13
14// An ImagePNGRep represents a bitmap's png encoded data and the scale factor it
15// was intended for.
16struct GFX_EXPORT ImagePNGRep {
17 public:
18  ImagePNGRep();
19  ImagePNGRep(const scoped_refptr<base::RefCountedMemory>& data,
20              float data_scale);
21  ~ImagePNGRep();
22
23  // Width and height of the image, in pixels.
24  // If the image is invalid, returns gfx::Size(0, 0).
25  // Warning: This operation processes the entire image stream, so its result
26  // should be cached if it is needed multiple times.
27  gfx::Size Size() const;
28
29  scoped_refptr<base::RefCountedMemory> raw_data;
30  float scale;
31};
32
33}  // namespace gfx
34
35#endif  // UI_GFX_IMAGE_IMAGE_PNG_REP_H_
36