// 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 CHROME_UTILITY_CLOUD_PRINT_PWG_ENCODER_H_ #define CHROME_UTILITY_CLOUD_PRINT_PWG_ENCODER_H_ #include <string> #include "base/basictypes.h" namespace cloud_print { class BitmapImage; class PwgEncoder { public: PwgEncoder(); void EncodeDocumentHeader(std::string *output) const; bool EncodePage(const BitmapImage& image, const uint32 dpi, const uint32 total_pages, std::string* output) const; private: void EncodePageHeader(const BitmapImage& image, const uint32 dpi, const uint32 total_pages, std::string* output) const; bool EncodeRowFrom32Bit(const uint8* row, const int width, const int color_space, std::string* output) const; const uint8* GetRow(const BitmapImage& image, int row) const; }; } // namespace cloud_print #endif // CHROME_UTILITY_CLOUD_PRINT_PWG_ENCODER_H_