Index: ui/gfx/image/image.h |
diff --git a/ui/gfx/image/image.h b/ui/gfx/image/image.h |
deleted file mode 100644 |
index 19ca93dada9df66aa1db4c5f76f04c4cdb9d282c..0000000000000000000000000000000000000000 |
--- a/ui/gfx/image/image.h |
+++ /dev/null |
@@ -1,201 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-// An Image wraps an image any flavor, be it platform-native GdkBitmap/NSImage, |
-// or a SkBitmap. This also provides easy conversion to other image types |
-// through operator overloading. It will cache the converted representations |
-// internally to prevent double-conversion. |
-// |
-// The lifetime of both the initial representation and any converted ones are |
-// tied to the lifetime of the Image's internal storage. To allow Images to be |
-// cheaply passed around by value, the actual image data is stored in a ref- |
-// counted member. When all Images referencing this storage are deleted, the |
-// actual representations are deleted, too. |
-// |
-// Images can be empty, in which case they have no backing representation. |
-// Attempting to use an empty Image will result in a crash. |
- |
-#ifndef UI_GFX_IMAGE_IMAGE_H_ |
-#define UI_GFX_IMAGE_IMAGE_H_ |
- |
-#include <map> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "base/gtest_prod_util.h" |
-#include "base/memory/ref_counted_memory.h" |
-#include "ui/gfx/gfx_export.h" |
-#include "ui/gfx/native_widget_types.h" |
- |
-#if defined(OS_MACOSX) && !defined(OS_IOS) |
-typedef struct CGColorSpace* CGColorSpaceRef; |
-#endif |
- |
-class SkBitmap; |
- |
-namespace { |
-class ImageTest; |
-class ImageMacTest; |
-} |
- |
-namespace gfx { |
-struct ImagePNGRep; |
-class ImageSkia; |
-class Size; |
- |
-namespace internal { |
-class ImageRep; |
-class ImageStorage; |
-} |
- |
-class GFX_EXPORT Image { |
- public: |
- enum RepresentationType { |
- kImageRepCocoa, |
- kImageRepCocoaTouch, |
- kImageRepSkia, |
- kImageRepPNG, |
- }; |
- |
- typedef std::map<RepresentationType, internal::ImageRep*> RepresentationMap; |
- |
- // Creates an empty image with no representations. |
- Image(); |
- |
- // Creates a new image by copying the raw PNG-encoded input for use as the |
- // default representation. |
- explicit Image(const std::vector<ImagePNGRep>& image_reps); |
- |
- // Creates a new image by copying the ImageSkia for use as the default |
- // representation. |
- explicit Image(const ImageSkia& image); |
- |
-#if defined(OS_IOS) |
- // Does not retain |image|; expects to take ownership. |
- explicit Image(UIImage* image); |
-#elif defined(OS_MACOSX) |
- // Does not retain |image|; expects to take ownership. |
- // A single NSImage object can contain multiple bitmaps so there's no reason |
- // to pass a vector of these. |
- explicit Image(NSImage* image); |
-#endif |
- |
- // Initializes a new Image by AddRef()ing |other|'s internal storage. |
- Image(const Image& other); |
- |
- // Copies a reference to |other|'s storage. |
- Image& operator=(const Image& other); |
- |
- // Deletes the image and, if the only owner of the storage, all of its cached |
- // representations. |
- ~Image(); |
- |
- // Creates an image from the passed in 1x bitmap. |
- // WARNING: The resulting image will be pixelated when painted on a high |
- // density display. |
- static Image CreateFrom1xBitmap(const SkBitmap& bitmap); |
- |
- // Creates an image from the PNG encoded input. |
- // For example (from an std::vector): |
- // std::vector<unsigned char> png = ...; |
- // gfx::Image image = |
- // Image::CreateFrom1xPNGBytes(&png.front(), png.size()); |
- static Image CreateFrom1xPNGBytes(const unsigned char* input, |
- size_t input_size); |
- |
- // Creates an image from the PNG encoded input. |
- static Image CreateFrom1xPNGBytes( |
- const scoped_refptr<base::RefCountedMemory>& input); |
- |
- // Converts the Image to the desired representation and stores it internally. |
- // The returned result is a weak pointer owned by and scoped to the life of |
- // the Image. Must only be called if IsEmpty() is false. |
- const SkBitmap* ToSkBitmap() const; |
- const ImageSkia* ToImageSkia() const; |
-#if defined(OS_IOS) |
- UIImage* ToUIImage() const; |
-#elif defined(OS_MACOSX) |
- NSImage* ToNSImage() const; |
-#endif |
- |
- // Returns the raw PNG-encoded data for the bitmap at 1x. If the data is |
- // unavailable, either because the image has no data for 1x or because it is |
- // empty, an empty RefCountedBytes object is returned. NULL is never |
- // returned. |
- scoped_refptr<base::RefCountedMemory> As1xPNGBytes() const; |
- |
- // Same as ToSkBitmap(), but returns a null SkBitmap if this image is empty. |
- SkBitmap AsBitmap() const; |
- |
- // Same as ToImageSkia(), but returns an empty ImageSkia if this |
- // image is empty. |
- ImageSkia AsImageSkia() const; |
- |
-#if defined(OS_MACOSX) && !defined(OS_IOS) |
- // Same as ToSkBitmap(), but returns nil if this image is empty. |
- NSImage* AsNSImage() const; |
-#endif |
- |
- // Performs a conversion, like above, but returns a copy of the result rather |
- // than a weak pointer. The caller is responsible for deleting the result. |
- // Note that the result is only a copy in terms of memory management; the |
- // backing pixels are shared amongst all copies (a fact of each of the |
- // converted representations, rather than a limitation imposed by Image) and |
- // so the result should be considered immutable. |
- scoped_refptr<base::RefCountedMemory> Copy1xPNGBytes() const; |
- ImageSkia* CopyImageSkia() const; |
- SkBitmap* CopySkBitmap() const; |
-#if defined(OS_IOS) |
- UIImage* CopyUIImage() const; |
-#elif defined(OS_MACOSX) |
- NSImage* CopyNSImage() const; |
-#endif |
- |
- // Inspects the representations map to see if the given type exists. |
- bool HasRepresentation(RepresentationType type) const; |
- |
- // Returns the number of representations. |
- size_t RepresentationCount() const; |
- |
- // Returns true if this Image has no representations. |
- bool IsEmpty() const; |
- |
- // Width and height of image in DIP coordinate system. |
- int Width() const; |
- int Height() const; |
- gfx::Size Size() const; |
- |
- // Swaps this image's internal representations with |other|. |
- void SwapRepresentations(gfx::Image* other); |
- |
-#if defined(OS_MACOSX) && !defined(OS_IOS) |
- // Set the default representation's color space. This is used for converting |
- // to NSImage. This is used to compensate for PNGCodec not writing or reading |
- // colorspace ancillary chunks. (sRGB, iCCP). |
- void SetSourceColorSpace(CGColorSpaceRef color_space); |
-#endif // defined(OS_MACOSX) && !defined(OS_IOS) |
- |
- private: |
- // Returns the type of the default representation. |
- RepresentationType DefaultRepresentationType() const; |
- |
- // Returns the ImageRep of the appropriate type or NULL if there is no |
- // representation of that type (and must_exist is false). |
- internal::ImageRep* GetRepresentation( |
- RepresentationType rep_type, bool must_exist) const; |
- |
- // Stores a representation into the map. |
- void AddRepresentation(internal::ImageRep* rep) const; |
- |
- // Internal class that holds all the representations. This allows the Image to |
- // be cheaply copied. |
- scoped_refptr<internal::ImageStorage> storage_; |
- |
- friend class ::ImageTest; |
- friend class ::ImageMacTest; |
-}; |
- |
-} // namespace gfx |
- |
-#endif // UI_GFX_IMAGE_IMAGE_H_ |