// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_PWG_ENCODER_BITMAP_IMAGE_H_ #define COMPONENTS_PWG_ENCODER_BITMAP_IMAGE_H_ #include #include #include "base/macros.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/size.h" namespace pwg_encoder { class BitmapImage { public: enum Colorspace { // These are the only types PWGEncoder currently supports. RGBA, BGRA }; BitmapImage(const gfx::Size& size, Colorspace colorspace); ~BitmapImage(); uint8_t channels() const; const gfx::Size& size() const { return size_; } Colorspace colorspace() const { return colorspace_; } const uint8_t* pixel_data() const { return data_.get(); } uint8_t* pixel_data() { return data_.get(); } const uint8_t* GetPixel(const gfx::Point& point) const; private: gfx::Size size_; Colorspace colorspace_; std::unique_ptr data_; DISALLOW_COPY_AND_ASSIGN(BitmapImage); }; } // namespace pwg_encoder #endif // COMPONENTS_PWG_ENCODER_BITMAP_IMAGE_H_