Home | History | Annotate | Download | only in cloud_print
      1 // Copyright 2013 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 CHROME_UTILITY_CLOUD_PRINT_BITMAP_IMAGE_H_
      6 #define CHROME_UTILITY_CLOUD_PRINT_BITMAP_IMAGE_H_
      7 
      8 #include "base/memory/scoped_ptr.h"
      9 #include "ui/gfx/point.h"
     10 #include "ui/gfx/size.h"
     11 
     12 namespace cloud_print {
     13 
     14 class BitmapImage {
     15  public:
     16   enum Colorspace {
     17     // These are the only types PWGEncoder currently supports.
     18     RGBA,
     19     BGRA
     20   };
     21 
     22   BitmapImage(const gfx::Size& size, Colorspace colorspace);
     23   ~BitmapImage();
     24 
     25   uint8 channels() const;
     26   const gfx::Size& size() const { return size_; }
     27   Colorspace colorspace() const { return colorspace_; }
     28 
     29   const uint8* pixel_data() const { return data_.get(); }
     30   uint8* pixel_data() { return data_.get(); }
     31 
     32   const uint8* GetPixel(const gfx::Point& point) const;
     33 
     34  private:
     35   gfx::Size size_;
     36   Colorspace colorspace_;
     37   scoped_ptr<uint8[]> data_;
     38 
     39   DISALLOW_COPY_AND_ASSIGN(BitmapImage);
     40 };
     41 
     42 }  // namespace cloud_print
     43 
     44 #endif  // CHROME_UTILITY_CLOUD_PRINT_BITMAP_IMAGE_H_
     45