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

Side by Side Diff: include/codec/SkEncodedInfo.h

Issue 1893203006: Make all the codecs default profiles based on gDefaultProfileIsSRGB. (Closed) Base URL: https://skia.googlesource.com/skia.git@add-imageinfo-to-SkImage_Base
Patch Set: Make private work. Created 4 years, 8 months 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkEncodedInfo_DEFINED 8 #ifndef SkEncodedInfo_DEFINED
9 #define SkEncodedInfo_DEFINED 9 #define SkEncodedInfo_DEFINED
10 10
11 #include "SkImageInfo.h" 11 #include "SkImageInfo.h"
12 #include "../private/SkImageInfoPriv.h"
12 13
13 struct SkEncodedInfo { 14 struct SkEncodedInfo {
14 public: 15 public:
15 16
16 enum Alpha { 17 enum Alpha {
17 kOpaque_Alpha, 18 kOpaque_Alpha,
18 kUnpremul_Alpha, 19 kUnpremul_Alpha,
19 20
20 // Each pixel is either fully opaque or fully transparent. 21 // Each pixel is either fully opaque or fully transparent.
21 // There is no difference between requesting kPremul or kUnpremul. 22 // There is no difference between requesting kPremul or kUnpremul.
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 } 118 }
118 119
119 return SkEncodedInfo(color, alpha, bitsPerComponent); 120 return SkEncodedInfo(color, alpha, bitsPerComponent);
120 } 121 }
121 122
122 /* 123 /*
123 * Returns an SkImageInfo with Skia color and alpha types that are the 124 * Returns an SkImageInfo with Skia color and alpha types that are the
124 * closest possible match to the encoded info. 125 * closest possible match to the encoded info.
125 */ 126 */
126 SkImageInfo makeImageInfo(int width, int height) const { 127 SkImageInfo makeImageInfo(int width, int height) const {
128 SkColorProfileType profileType = SkDefaultColorProfile();
127 switch (fColor) { 129 switch (fColor) {
128 case kGray_Color: 130 case kGray_Color:
129 SkASSERT(kOpaque_Alpha == fAlpha); 131 SkASSERT(kOpaque_Alpha == fAlpha);
130 return SkImageInfo::Make(width, height, kGray_8_SkColorType, kOp aque_SkAlphaType); 132 return SkImageInfo::Make(width, height, kGray_8_SkColorType,
133 kOpaque_SkAlphaType, profileType);
131 case kGrayAlpha_Color: 134 case kGrayAlpha_Color:
132 SkASSERT(kOpaque_Alpha != fAlpha); 135 SkASSERT(kOpaque_Alpha != fAlpha);
133 return SkImageInfo::Make(width, height, kN32_SkColorType, 136 return SkImageInfo::Make(width, height, kN32_SkColorType,
134 kUnpremul_SkAlphaType); 137 kUnpremul_SkAlphaType, profileType);
135 case kPalette_Color: { 138 case kPalette_Color: {
136 SkAlphaType alphaType = (kOpaque_Alpha == fAlpha) ? kOpaque_SkAl phaType : 139 SkAlphaType alphaType = (kOpaque_Alpha == fAlpha) ? kOpaque_SkAl phaType :
137 kUnpremul_SkAlphaType; 140 kUnpremul_SkAlphaType;
138 return SkImageInfo::Make(width, height, kIndex_8_SkColorType, al phaType); 141 return SkImageInfo::Make(width, height, kIndex_8_SkColorType,
142 alphaType, profileType);
139 } 143 }
140 case kRGB_Color: 144 case kRGB_Color:
141 case kBGR_Color: 145 case kBGR_Color:
142 case kBGRX_Color: 146 case kBGRX_Color:
143 case kYUV_Color: 147 case kYUV_Color:
144 case kInvertedCMYK_Color: 148 case kInvertedCMYK_Color:
145 case kYCCK_Color: 149 case kYCCK_Color:
146 SkASSERT(kOpaque_Alpha == fAlpha); 150 SkASSERT(kOpaque_Alpha == fAlpha);
147 return SkImageInfo::Make(width, height, kN32_SkColorType, kOpaqu e_SkAlphaType); 151 return SkImageInfo::Make(width, height, kN32_SkColorType,
152 kOpaque_SkAlphaType, profileType);
148 case kRGBA_Color: 153 case kRGBA_Color:
149 case kBGRA_Color: 154 case kBGRA_Color:
150 case kYUVA_Color: 155 case kYUVA_Color:
151 SkASSERT(kOpaque_Alpha != fAlpha); 156 SkASSERT(kOpaque_Alpha != fAlpha);
152 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre mul_SkAlphaType); 157 return SkImageInfo::Make(width, height, kN32_SkColorType,
158 kUnpremul_SkAlphaType, profileType);
153 default: 159 default:
154 SkASSERT(false); 160 SkASSERT(false);
155 return SkImageInfo::MakeUnknown(); 161 return SkImageInfo::MakeUnknown();
156 } 162 }
157 } 163 }
158 164
159 SkEncodedInfo() 165 SkEncodedInfo()
160 : fColor(kUnknown_Color) 166 : fColor(kUnknown_Color)
161 , fAlpha(kUnknown_Alpha) 167 , fAlpha(kUnknown_Alpha)
162 , fBitsPerComponent(0) 168 , fBitsPerComponent(0)
163 {} 169 {}
164 170
165 private: 171 private:
166 172
167 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) 173 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent)
168 : fColor(color) 174 : fColor(color)
169 , fAlpha(alpha) 175 , fAlpha(alpha)
170 , fBitsPerComponent(bitsPerComponent) 176 , fBitsPerComponent(bitsPerComponent)
171 {} 177 {}
172 178
173 Color fColor; 179 Color fColor;
174 Alpha fAlpha; 180 Alpha fAlpha;
175 uint8_t fBitsPerComponent; 181 uint8_t fBitsPerComponent;
176 }; 182 };
177 183
178 #endif 184 #endif
OLDNEW
« no previous file with comments | « gyp/core.gypi ('k') | include/private/SkImageInfoPriv.h » ('j') | src/core/SkBitmap.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698