pub enum ColorSpace {
DeviceRGB,
DeviceCMYK,
DeviceGray,
Indexed,
Other(String),
}Expand description
Color-space tag attached to a PdfImageXObject.
PDF colour-space objects are richer than this enum — a real renderer needs to track ICC profiles, calibrated RGB, lab, etc. — but for JPEG passthrough we only need to surface the four most common families a JPEG can claim to be in (the JPEG payload itself dictates whether it’s 1-channel grayscale, 3-channel YCbCr→RGB, or 4-channel CMYK; the PDF /ColorSpace is a hint to the JPEG decoder about how the channels should be re-interpreted on the page).
Indexed is the special case where the PDF wraps a JPEG (which is
itself grayscale or RGB) inside an indexed color space — it’s
vanishingly rare with DCTDecode, but we surface the variant so
downstream code can detect + special-case it.
Variants§
DeviceRGB
/DeviceRGB — 3 channels, non-calibrated RGB.
DeviceCMYK
/DeviceCMYK — 4 channels, non-calibrated CMYK. JPEGs in CMYK
are common in prepress workflows; the JPEG decoder needs to
know not to apply YCbCr→RGB on the 4-channel form.
DeviceGray
/DeviceGray — 1 channel, non-calibrated grayscale.
Indexed
[/Indexed <base> <hival> <lookup>] — palette-based color
space. The JPEG payload is itself either gray or RGB; the
indexed wrapper applies on the PDF side.
Other(String)
Anything else (ICCBased, CalGray, CalRGB, Lab, Pattern, Separation, DeviceN, …). The JPEG bytes are still valid; the caller may need to consult an ICC profile to render the page accurately.
Trait Implementations§
Source§impl Clone for ColorSpace
impl Clone for ColorSpace
Source§fn clone(&self) -> ColorSpace
fn clone(&self) -> ColorSpace
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ColorSpace
impl Debug for ColorSpace
impl Eq for ColorSpace
Source§impl PartialEq for ColorSpace
impl PartialEq for ColorSpace
Source§fn eq(&self, other: &ColorSpace) -> bool
fn eq(&self, other: &ColorSpace) -> bool
self and other values to be equal, and is used by ==.