| Index: printing/image.h | 
| =================================================================== | 
| --- printing/image.h	(revision 20864) | 
| +++ printing/image.h	(working copy) | 
| @@ -11,10 +11,11 @@ | 
| #include "base/basictypes.h" | 
| #include "base/gfx/size.h" | 
| #include "base/logging.h" | 
| +#include "printing/native_metafile.h" | 
|  | 
| namespace printing { | 
|  | 
| -// Lightweight raw-bitmap management. The image, once initialized, is immuable. | 
| +// Lightweight raw-bitmap management. The image, once initialized, is immutable. | 
| // The main purpose is testing image contents. | 
| class Image { | 
| public: | 
| @@ -23,12 +24,22 @@ | 
| // If image loading fails size().IsEmpty() will be true. | 
| explicit Image(const std::wstring& filename); | 
|  | 
| +  // Creates the image from the metafile.  Deduces bounds based on bounds in | 
| +  // metafile.  If loading fails size().IsEmpty() will be true. | 
| +  explicit Image(const NativeMetafile& metafile); | 
| + | 
| +  // Copy constructor. | 
| +  explicit Image(const Image& image); | 
| + | 
| const gfx::Size& size() const { | 
| return size_; | 
| } | 
|  | 
| +  // Return a checksum of the image (MD5 over the internal data structure). | 
| +  std::string checksum() const; | 
| + | 
| // Save image as PNG. | 
| -  bool SaveToPng(const std::wstring& filename); | 
| +  bool SaveToPng(const std::wstring& filename) const; | 
|  | 
| // Returns % of pixels different | 
| double PercentageDifferent(const Image& rhs) const; | 
| @@ -50,10 +61,16 @@ | 
| } | 
|  | 
| private: | 
| +  // Construct from metafile.  This is kept internal since it's ambiguous what | 
| +  // kind of data is used (png, bmp, metafile etc). | 
| +  Image(const void* data, size_t size); | 
| + | 
| bool LoadPng(const std::string& compressed); | 
|  | 
| bool LoadMetafile(const std::string& data); | 
|  | 
| +  bool LoadMetafile(const NativeMetafile& metafile); | 
| + | 
| // Pixel dimensions of the image. | 
| gfx::Size size_; | 
|  | 
| @@ -67,7 +84,8 @@ | 
| // Flag to signal if the comparison functions should ignore the alpha channel. | 
| const bool ignore_alpha_;  // Currently always true. | 
|  | 
| -  DISALLOW_EVIL_CONSTRUCTORS(Image); | 
| +  // Prevent operator= (this function has no implementation) | 
| +  Image& operator=(const Image& image); | 
| }; | 
|  | 
| }  // namespace printing | 
|  |