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_PWG_ENCODER_H_ 6 #define CHROME_UTILITY_CLOUD_PRINT_PWG_ENCODER_H_ 7 8 #include <string> 9 10 #include "base/basictypes.h" 11 12 namespace cloud_print { 13 14 class BitmapImage; 15 16 class PwgEncoder { 17 public: 18 PwgEncoder(); 19 20 void EncodeDocumentHeader(std::string *output) const; 21 bool EncodePage(const BitmapImage& image, const uint32 dpi, 22 const uint32 total_pages, std::string* output) const; 23 24 private: 25 void EncodePageHeader(const BitmapImage& image, const uint32 dpi, 26 const uint32 total_pages, std::string* output) const; 27 bool EncodeRowFrom32Bit(const uint8* row, const int width, 28 const int color_space, std::string* output) const; 29 const uint8* GetRow(const BitmapImage& image, int row) const; 30 }; 31 32 } // namespace cloud_print 33 34 #endif // CHROME_UTILITY_CLOUD_PRINT_PWG_ENCODER_H_ 35