Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(471)

Unified Diff: third_party/WebKit/Source/core/html/ImageData.h

Issue 2555213002: Implement color management for ImageData (Closed)
Patch Set: Work in progress Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/html/ImageData.h
diff --git a/third_party/WebKit/Source/core/html/ImageData.h b/third_party/WebKit/Source/core/html/ImageData.h
index 206671a1b48fba1f7b1937dc4cb78414fcb93f8b..b7b712c7eea17dadc082f539486409861688452e 100644
--- a/third_party/WebKit/Source/core/html/ImageData.h
+++ b/third_party/WebKit/Source/core/html/ImageData.h
@@ -37,12 +37,23 @@
#include "platform/geometry/IntSize.h"
#include "platform/heap/Handle.h"
#include "wtf/Compiler.h"
+#include "wtf/text/WTFString.h"
namespace blink {
class ExceptionState;
class ImageBitmapOptions;
+enum ImageDataColorSpace {
+ kLegacyImageDataColorSpace,
+ kSRGBImageDataColorSpace,
+ kLinearRGBImageDataColorSpace,
+};
+
+const char* const kLegacyImageDataColorSpaceName = "linear-rgb";
+const char* const kSRGBImageDataColorSpaceName = "srgb";
+const char* const kLinearRGBImageDataColorSpaceName = "legacy-srgb";
+
class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
public ScriptWrappable,
public ImageBitmapSource {
@@ -52,6 +63,10 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
static ImageData* create(const IntSize&);
static ImageData* create(const IntSize&, DOMUint8ClampedArray*);
static ImageData* create(unsigned width, unsigned height, ExceptionState&);
+ static ImageData* create(unsigned width,
+ unsigned height,
+ String colorSpace,
+ ExceptionState&);
static ImageData* create(DOMUint8ClampedArray*,
unsigned width,
ExceptionState&);
@@ -59,10 +74,16 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
unsigned width,
unsigned height,
ExceptionState&);
+ static ImageData* create(DOMUint8ClampedArray*,
+ unsigned width,
+ unsigned height,
+ String colorSpace,
+ ExceptionState&);
IntSize size() const { return m_size; }
int width() const { return m_size.width(); }
int height() const { return m_size.height(); }
+ String colorSpace() const { return m_colorSpace; }
const DOMUint8ClampedArray* data() const { return m_data.get(); }
DOMUint8ClampedArray* data() { return m_data.get(); }
@@ -82,14 +103,22 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
v8::Local<v8::Object> wrapper) override;
private:
- ImageData(const IntSize&, DOMUint8ClampedArray*);
+ ImageData(const IntSize&,
+ DOMUint8ClampedArray*,
+ String = kLegacyImageDataColorSpaceName);
static bool validateConstructorArguments(DOMUint8ClampedArray*,
unsigned width,
unsigned&,
ExceptionState&);
+ static bool validateConstructorArguments(DOMUint8ClampedArray*,
+ unsigned width,
+ unsigned&,
+ String,
+ ExceptionState&);
IntSize m_size;
+ String m_colorSpace;
Justin Novosad 2016/12/08 18:16:35 You should store this as an enum, and use an attri
zakerinasab 2016/12/08 20:40:52 Fixed.
Member<DOMUint8ClampedArray> m_data;
};

Powered by Google App Engine
This is Rietveld 408576698