#[non_exhaustive]pub struct Image {
pub path: String,
pub width: HwpUnit,
pub height: HwpUnit,
pub format: ImageFormat,
pub caption: Option<Caption>,
pub placement: Option<ImagePlacement>,
}Expand description
An image reference within the document.
Contains the path to the image resource (relative to the document package root), its display dimensions, and format hint.
§No Binary Data
Core deliberately holds no image bytes. The Smithy crate resolves
path into actual binary data during encode/decode.
§Examples
use hwpforge_core::image::{Image, ImageFormat};
use hwpforge_foundation::HwpUnit;
let img = Image::new(
"BinData/logo.jpeg",
HwpUnit::from_mm(80.0).unwrap(),
HwpUnit::from_mm(40.0).unwrap(),
ImageFormat::Jpeg,
);
assert_eq!(img.format, ImageFormat::Jpeg);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.path: StringRelative path within the document package (e.g. "BinData/image1.png").
width: HwpUnitDisplay width.
height: HwpUnitDisplay height.
format: ImageFormatImage format hint.
caption: Option<Caption>Optional image caption.
placement: Option<ImagePlacement>Optional placement/presentation metadata.
Implementations§
Source§impl Image
impl Image
Sourcepub fn new(
path: impl Into<String>,
width: HwpUnit,
height: HwpUnit,
format: ImageFormat,
) -> Self
pub fn new( path: impl Into<String>, width: HwpUnit, height: HwpUnit, format: ImageFormat, ) -> Self
Creates a new image reference.
§Examples
use hwpforge_core::image::{Image, ImageFormat};
use hwpforge_foundation::HwpUnit;
let img = Image::new(
"images/photo.png",
HwpUnit::from_mm(100.0).unwrap(),
HwpUnit::from_mm(75.0).unwrap(),
ImageFormat::Png,
);
assert_eq!(img.path, "images/photo.png");Sourcepub fn from_path(
path: impl Into<String>,
width: HwpUnit,
height: HwpUnit,
) -> Self
pub fn from_path( path: impl Into<String>, width: HwpUnit, height: HwpUnit, ) -> Self
Creates an image reference by inferring the format from the file extension.
The extension is case-insensitive. Unrecognized extensions produce
ImageFormat::Unknown containing the lowercase extension string.
§Examples
use hwpforge_core::image::{Image, ImageFormat};
use hwpforge_foundation::HwpUnit;
let w = HwpUnit::from_mm(100.0).unwrap();
let h = HwpUnit::from_mm(75.0).unwrap();
let img = Image::from_path("photos/hero.png", w, h);
assert_eq!(img.format, ImageFormat::Png);
let img_jpg = Image::from_path("scan.JPG", w, h);
assert_eq!(img_jpg.format, ImageFormat::Jpeg);
let img_unknown = Image::from_path("diagram.svg", w, h);
assert_eq!(img_unknown.format, ImageFormat::Unknown("svg".to_string()));Sourcepub fn with_caption(self, caption: Caption) -> Self
pub fn with_caption(self, caption: Caption) -> Self
Attaches a caption to the image.
Sourcepub fn with_placement(self, placement: ImagePlacement) -> Self
pub fn with_placement(self, placement: ImagePlacement) -> Self
Attaches placement metadata while preserving the existing constructor API.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Image
impl<'de> Deserialize<'de> for Image
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for Image
impl JsonSchema for Image
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more