| OLD | NEW |
| 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 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 | 61 |
| 62 // JPEG | 62 // JPEG |
| 63 // Photoshop actually writes inverted CMYK data into JPEGs, where zero | 63 // Photoshop actually writes inverted CMYK data into JPEGs, where zero |
| 64 // represents 100% ink coverage. For this reason, we treat CMYK JPEGs | 64 // represents 100% ink coverage. For this reason, we treat CMYK JPEGs |
| 65 // as having inverted CMYK. libjpeg-turbo warns that this may break | 65 // as having inverted CMYK. libjpeg-turbo warns that this may break |
| 66 // other applications, but the CMYK JPEGs we see on the web expect to | 66 // other applications, but the CMYK JPEGs we see on the web expect to |
| 67 // be treated as inverted CMYK. | 67 // be treated as inverted CMYK. |
| 68 kInvertedCMYK_Color, | 68 kInvertedCMYK_Color, |
| 69 kYCCK_Color, | 69 kYCCK_Color, |
| 70 | 70 |
| 71 // Used internally to indicate that the decoding library has |
| 72 // pre-swizzled to the desired output format. |
| 73 kPreSwizzled_Color, |
| 74 |
| 71 // Allows us to have a default constructor. Should be treated as | 75 // Allows us to have a default constructor. Should be treated as |
| 72 // invalid. | 76 // invalid. |
| 73 kUnknown_Color, | 77 kUnknown_Color, |
| 74 }; | 78 }; |
| 75 | 79 |
| 76 static SkEncodedInfo Make(Color color, Alpha alpha, int bitsPerComponent) { | 80 static SkEncodedInfo Make(Color color, Alpha alpha, int bitsPerComponent) { |
| 77 SkASSERT(1 == bitsPerComponent || | 81 SkASSERT(1 == bitsPerComponent || |
| 78 2 == bitsPerComponent || | 82 2 == bitsPerComponent || |
| 79 4 == bitsPerComponent || | 83 4 == bitsPerComponent || |
| 80 8 == bitsPerComponent || | 84 8 == bitsPerComponent || |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 case kBGRA_Color: | 153 case kBGRA_Color: |
| 150 case kYUVA_Color: | 154 case kYUVA_Color: |
| 151 SkASSERT(kOpaque_Alpha != fAlpha); | 155 SkASSERT(kOpaque_Alpha != fAlpha); |
| 152 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre
mul_SkAlphaType); | 156 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre
mul_SkAlphaType); |
| 153 default: | 157 default: |
| 154 SkASSERT(false); | 158 SkASSERT(false); |
| 155 return SkImageInfo::MakeUnknown(); | 159 return SkImageInfo::MakeUnknown(); |
| 156 } | 160 } |
| 157 } | 161 } |
| 158 | 162 |
| 163 Color color() const { return fColor; } |
| 164 Alpha alpha() const { return fAlpha; } |
| 165 uint8_t bitsPerComponent() const { return fBitsPerComponent; } |
| 166 |
| 167 uint8_t bitsPerPixel() const { |
| 168 switch (fColor) { |
| 169 case kGray_Color: |
| 170 return fBitsPerComponent; |
| 171 case kGrayAlpha_Color: |
| 172 return 2 * fBitsPerComponent; |
| 173 case kPalette_Color: |
| 174 return fBitsPerComponent; |
| 175 case kRGB_Color: |
| 176 case kBGR_Color: |
| 177 case kYUV_Color: |
| 178 return 3 * fBitsPerComponent; |
| 179 case kRGBA_Color: |
| 180 case kBGRA_Color: |
| 181 case kBGRX_Color: |
| 182 case kYUVA_Color: |
| 183 case kInvertedCMYK_Color: |
| 184 case kYCCK_Color: |
| 185 return 4 * fBitsPerComponent; |
| 186 default: |
| 187 SkASSERT(false); |
| 188 return 0; |
| 189 } |
| 190 } |
| 191 |
| 159 SkEncodedInfo() | 192 SkEncodedInfo() |
| 160 : fColor(kUnknown_Color) | 193 : fColor(kUnknown_Color) |
| 161 , fAlpha(kUnknown_Alpha) | 194 , fAlpha(kUnknown_Alpha) |
| 162 , fBitsPerComponent(0) | 195 , fBitsPerComponent(0) |
| 163 {} | 196 {} |
| 164 | 197 |
| 165 private: | 198 private: |
| 166 | 199 |
| 167 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) | 200 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) |
| 168 : fColor(color) | 201 : fColor(color) |
| 169 , fAlpha(alpha) | 202 , fAlpha(alpha) |
| 170 , fBitsPerComponent(bitsPerComponent) | 203 , fBitsPerComponent(bitsPerComponent) |
| 171 {} | 204 {} |
| 172 | 205 |
| 206 void setColor(Color color) { |
| 207 fColor = color; |
| 208 } |
| 209 |
| 173 Color fColor; | 210 Color fColor; |
| 174 Alpha fAlpha; | 211 Alpha fAlpha; |
| 175 uint8_t fBitsPerComponent; | 212 uint8_t fBitsPerComponent; |
| 213 |
| 214 friend class SkJpegCodec; |
| 176 }; | 215 }; |
| 177 | 216 |
| 178 #endif | 217 #endif |
| OLD | NEW |