pub struct ImageElem {
pub source: Derived<DataSource, Bytes>,
/* private fields */
}
Expand description
A raster or vector graphic.
You can wrap the image in a [figure
] to give it a number and caption.
Like most elements, images are block-level by default and thus do not
integrate themselves into adjacent paragraphs. To force an image to become
inline, put it into a [box
].
§Example
#figure(
image("molecular.jpg", width: 80%),
caption: [
A step in the molecular testing
pipeline of our lab.
],
)
Fields§
§source: Derived<DataSource, Bytes>
Implementations§
Source§impl ImageElem
impl ImageElem
Sourcepub fn new(source: Derived<DataSource, Bytes>) -> Self
pub fn new(source: Derived<DataSource, Bytes>) -> Self
Create a new instance of the element.
Sourcepub fn with_format(self, format: Smart<ImageFormat>) -> Self
pub fn with_format(self, format: Smart<ImageFormat>) -> Self
Builder-style setter for the format
field.
Sourcepub fn with_width(self, width: Smart<Rel<Length>>) -> Self
pub fn with_width(self, width: Smart<Rel<Length>>) -> Self
Builder-style setter for the width
field.
Sourcepub fn with_height(self, height: Sizing) -> Self
pub fn with_height(self, height: Sizing) -> Self
Builder-style setter for the height
field.
Sourcepub fn with_scaling(self, scaling: Smart<ImageScaling>) -> Self
pub fn with_scaling(self, scaling: Smart<ImageScaling>) -> Self
Builder-style setter for the scaling
field.
Sourcepub fn with_icc(self, icc: Smart<Derived<DataSource, Bytes>>) -> Self
pub fn with_icc(self, icc: Smart<Derived<DataSource, Bytes>>) -> Self
Builder-style setter for the icc
field.
Sourcepub fn push_format(&mut self, format: Smart<ImageFormat>)
pub fn push_format(&mut self, format: Smart<ImageFormat>)
Setter for the format
field.
Sourcepub fn push_height(&mut self, height: Sizing)
pub fn push_height(&mut self, height: Sizing)
Setter for the height
field.
Sourcepub fn push_scaling(&mut self, scaling: Smart<ImageScaling>)
pub fn push_scaling(&mut self, scaling: Smart<ImageScaling>)
Setter for the scaling
field.
Sourcepub fn format(&self, styles: StyleChain<'_>) -> Smart<ImageFormat>
pub fn format(&self, styles: StyleChain<'_>) -> Smart<ImageFormat>
The image’s format.
By default, the format is detected automatically. Typically, you thus
only need to specify this when providing raw bytes as the
source
(even then, Typst will try to figure out the
format automatically, but that’s not always possible).
Supported formats are {"png"}
, {"jpg"}
, {"gif"}
, {"svg"}
as well
as raw pixel data. Embedding PDFs as images is
not currently supported.
When providing raw pixel data as the source
, you must specify a
dictionary with the following keys as the format
:
encoding
(str): The encoding of the pixel data. One of:{"rgb8"}
(three 8-bit channels: red, green, blue){"rgba8"}
(four 8-bit channels: red, green, blue, alpha){"luma8"}
(one 8-bit channel){"lumaa8"}
(two 8-bit channels: luma and alpha)
width
([int]): The pixel width of the image.height
([int]): The pixel height of the image.
The pixel width multiplied by the height multiplied by the channel count
for the specified encoding must then match the source
data.
#image(
read(
"tetrahedron.svg",
encoding: none,
),
format: "svg",
width: 2cm,
)
#image(
bytes(range(16).map(x => x * 16)),
format: (
encoding: "luma8",
width: 4,
height: 4,
),
width: 2cm,
)
Sourcepub fn height(&self, styles: StyleChain<'_>) -> Sizing
pub fn height(&self, styles: StyleChain<'_>) -> Sizing
The height of the image.
Sourcepub fn alt(&self, styles: StyleChain<'_>) -> Option<EcoString>
pub fn alt(&self, styles: StyleChain<'_>) -> Option<EcoString>
A text describing the image.
Sourcepub fn fit(&self, styles: StyleChain<'_>) -> ImageFit
pub fn fit(&self, styles: StyleChain<'_>) -> ImageFit
How the image should adjust itself to a given area (the area is defined
by the width
and height
fields). Note that fit
doesn’t visually
change anything if the area’s aspect ratio is the same as the image’s
one.
#set page(width: 300pt, height: 50pt, margin: 10pt)
#image("tiger.jpg", width: 100%, fit: "cover")
#image("tiger.jpg", width: 100%, fit: "contain")
#image("tiger.jpg", width: 100%, fit: "stretch")
Sourcepub fn scaling(&self, styles: StyleChain<'_>) -> Smart<ImageScaling>
pub fn scaling(&self, styles: StyleChain<'_>) -> Smart<ImageScaling>
A hint to viewers how they should scale the image.
When set to {auto}
, the default is left up to the viewer. For PNG
export, Typst will default to smooth scaling, like most PDF and SVG
viewers.
Note: The exact look may differ across PDF viewers.
Sourcepub fn icc<'a>(
&'a self,
styles: StyleChain<'a>,
) -> &'a Smart<Derived<DataSource, Bytes>>
pub fn icc<'a>( &'a self, styles: StyleChain<'a>, ) -> &'a Smart<Derived<DataSource, Bytes>>
An ICC profile for the image.
ICC profiles define how to interpret the colors in an image. When set
to {auto}
, Typst will try to extract an ICC profile from the image.
Sourcepub fn format_in(styles: StyleChain<'_>) -> Smart<ImageFormat>
pub fn format_in(styles: StyleChain<'_>) -> Smart<ImageFormat>
Access the format
field in the given style chain.
Sourcepub fn width_in(styles: StyleChain<'_>) -> Smart<Rel<Length>>
pub fn width_in(styles: StyleChain<'_>) -> Smart<Rel<Length>>
Access the width
field in the given style chain.
Sourcepub fn height_in(styles: StyleChain<'_>) -> Sizing
pub fn height_in(styles: StyleChain<'_>) -> Sizing
Access the height
field in the given style chain.
Sourcepub fn alt_in(styles: StyleChain<'_>) -> Option<EcoString>
pub fn alt_in(styles: StyleChain<'_>) -> Option<EcoString>
Access the alt
field in the given style chain.
Sourcepub fn fit_in(styles: StyleChain<'_>) -> ImageFit
pub fn fit_in(styles: StyleChain<'_>) -> ImageFit
Access the fit
field in the given style chain.
Sourcepub fn scaling_in(styles: StyleChain<'_>) -> Smart<ImageScaling>
pub fn scaling_in(styles: StyleChain<'_>) -> Smart<ImageScaling>
Access the scaling
field in the given style chain.
Sourcepub fn icc_in(styles: StyleChain<'_>) -> &Smart<Derived<DataSource, Bytes>>
pub fn icc_in(styles: StyleChain<'_>) -> &Smart<Derived<DataSource, Bytes>>
Access the icc
field in the given style chain.
Sourcepub fn set_format(format: Smart<ImageFormat>) -> Property
pub fn set_format(format: Smart<ImageFormat>) -> Property
Create a style property for the format
field.
Sourcepub fn set_width(width: Smart<Rel<Length>>) -> Property
pub fn set_width(width: Smart<Rel<Length>>) -> Property
Create a style property for the width
field.
Sourcepub fn set_height(height: Sizing) -> Property
pub fn set_height(height: Sizing) -> Property
Create a style property for the height
field.
Sourcepub fn set_scaling(scaling: Smart<ImageScaling>) -> Property
pub fn set_scaling(scaling: Smart<ImageScaling>) -> Property
Create a style property for the scaling
field.
Source§impl ImageElem
impl ImageElem
Sourcepub fn decode(
span: Span,
data: Readable,
format: Option<Smart<ImageFormat>>,
width: Option<Smart<Rel<Length>>>,
height: Option<Sizing>,
alt: Option<Option<EcoString>>,
fit: Option<ImageFit>,
scaling: Option<Smart<ImageScaling>>,
) -> StrResult<Content>
pub fn decode( span: Span, data: Readable, format: Option<Smart<ImageFormat>>, width: Option<Smart<Rel<Length>>>, height: Option<Sizing>, alt: Option<Option<EcoString>>, fit: Option<ImageFit>, scaling: Option<Smart<ImageScaling>>, ) -> StrResult<Content>
Decode a raster or vector graphic from bytes or a string.
Trait Implementations§
Source§impl Fields for ImageElem
impl Fields for ImageElem
Source§fn field(&self, id: u8) -> Result<Value, FieldAccessError>
fn field(&self, id: u8) -> Result<Value, FieldAccessError>
Source§fn field_with_styles(
&self,
id: u8,
styles: StyleChain<'_>,
) -> Result<Value, FieldAccessError>
fn field_with_styles( &self, id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>
Source§fn field_from_styles(
id: u8,
styles: StyleChain<'_>,
) -> Result<Value, FieldAccessError>
fn field_from_styles( id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>
Source§fn materialize(&mut self, styles: StyleChain<'_>)
fn materialize(&mut self, styles: StyleChain<'_>)
Source§impl NativeElement for ImageElem
impl NativeElement for ImageElem
Source§impl NativeScope for ImageElem
impl NativeScope for ImageElem
Source§fn constructor() -> Option<&'static NativeFuncData>
fn constructor() -> Option<&'static NativeFuncData>
Auto Trait Implementations§
impl Freeze for ImageElem
impl !RefUnwindSafe for ImageElem
impl Send for ImageElem
impl Sync for ImageElem
impl Unpin for ImageElem
impl !UnwindSafe for ImageElem
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle
.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other
into Self
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T
.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoResult for Twhere
T: IntoValue,
impl<T> IntoResult for Twhere
T: IntoValue,
Source§fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self
into T
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors
fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read more