// PNG with Skia-specific sBIT // Like kGrayAlpha, except this expects to be treated as // kAlpha_8_SkColorType, which ignores the gray component. If // decoded to full color (e.g. kN32), the gray component is respected // (so it can share code with kGrayAlpha).
kXAlpha_Color,
// PNG // 565 images may be encoded to PNG by specifying the number of // significant bits for each channel. This is a strange 565 // representation because the image is still encoded with 8 bits per // component.
k565_Color,
// PNG, GIF, BMP
kPalette_Color,
// PNG, RAW
kRGB_Color,
kRGBA_Color,
// BMP
kBGR_Color,
kBGRX_Color,
kBGRA_Color,
// JPEG, WEBP
kYUV_Color,
// WEBP
kYUVA_Color,
// JPEG // Photoshop actually writes inverted CMYK data into JPEGs, where zero // represents 100% ink coverage. For this reason, we treat CMYK JPEGs // as having inverted CMYK. libjpeg-turbo warns that this may break // other applications, but the CMYK JPEGs we see on the web expect to // be treated as inverted CMYK.
kInvertedCMYK_Color,
kYCCK_Color,
};
static SkEncodedInfo Make( int width, int height, Color color, Alpha alpha, int bitsPerComponent);
static SkEncodedInfo Make( int width, int height, Color color, Alpha alpha, int bitsPerComponent,
std::unique_ptr<SkCodecs::ColorProfile> profile);
static SkEncodedInfo Make( int width, int height, Color color, Alpha alpha, int bitsPerComponent,
std::unique_ptr<SkCodecs::ColorProfile> profile, int colorDepth);
static SkEncodedInfo Make( int width, int height, Color color, Alpha alpha, int bitsPerComponent, int colorDepth,
std::unique_ptr<SkCodecs::ColorProfile> profile, const skhdr::Metadata& hdrMetadata);
// TODO(https://issues.skia.org/issues/464217864): Remove direct access to the // skcms_ICCProfile and change profileData() to serialize a new profile. const skcms_ICCProfile* profile() const;
sk_sp<const SkData> profileData() const; const SkCodecs::ColorProfile* colorProfile() const { return fColorProfile.get();
}
uint8_t bitsPerPixel() const { switch (fColor) { case kGray_Color: return fBitsPerComponent; case kXAlpha_Color: case kGrayAlpha_Color: return2 * fBitsPerComponent; case kPalette_Color: return fBitsPerComponent; case kRGB_Color: case kBGR_Color: case kYUV_Color: case k565_Color: return3 * fBitsPerComponent; case kRGBA_Color: case kBGRA_Color: case kBGRX_Color: case kYUVA_Color: case kInvertedCMYK_Color: case kYCCK_Color: return4 * fBitsPerComponent;
}
SkASSERT(false); return0;
}
// Return number of bits of R/G/B channel
uint8_t getColorDepth() const { return fColorDepth;
}
// Return the HDR metadata associated with this image. Note that even SDR images can include // HDR metadata (e.g, indicating how to inverse tone map when displayed on an HDR display). const skhdr::Metadata& getHdrMetadata() const { return fHdrMetadata;
}
~SkEncodedInfo();
private:
SkEncodedInfo( int width, int height, Color color, Alpha alpha, uint8_t bitsPerComponent,
uint8_t colorDepth,
std::unique_ptr<SkCodecs::ColorProfile> profile, const skhdr::Metadata& hdrMetadata);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.