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 |