pub struct PdfPageImageObject<'a> { /* private fields */ }
Expand description

A single PdfPageObject of type PdfPageObjectType::Image. The page object defines a single bitmapped image.

Page objects can be created either attached to a PdfPage (in which case the page object’s memory is owned by the containing page) or detached from any page (in which case the page object’s memory is owned by the object). Page objects are not rendered until they are attached to a page; page objects that are never attached to a page will be lost when they fall out of scope.

The simplest way to create a page image object that is immediately attached to a page is to call the PdfPageObjects::create_image_object() function.

Creating a detached page image object offers more scope for customization, but you must add the object to a containing PdfPage manually. To create a detached page image object, use the PdfPageImageObject::new() function. The detached page image object can later be attached to a page by using the PdfPageObjects::add_image_object() function.

Implementations§

source§

impl<'a> PdfPageImageObject<'a>

source

pub fn new( document: &PdfDocument<'a>, image: &DynamicImage ) -> Result<Self, PdfiumError>

Creates a new PdfPageImageObject from the given arguments. The returned page object will not be rendered until it is added to a PdfPage using the PdfPageObjects::add_image_object() function.

The returned page object will have its width and height both set to 1.0 points. Use the PdfPageImageObject::scale() function to apply a horizontal and vertical scale to the object after it is created, or use one of the PdfPageImageObject::new_with_width(), PdfPageImageObject::new_with_height(), or PdfPageImageObject::new_with_size() functions to scale the page object to a specific width and/or height at the time the object is created.

This function is only available when this crate’s image feature is enabled.

source

pub fn new_with_width( document: &PdfDocument<'a>, image: &DynamicImage, width: PdfPoints ) -> Result<Self, PdfiumError>

Creates a new PdfPageImageObject from the given arguments. The page object will be scaled horizontally to match the given width; its height will be adjusted to maintain the aspect ratio of the given image. The returned page object will not be rendered until it is added to a PdfPage using the PdfPageObjects::add_image_object() function.

This function is only available when this crate’s image feature is enabled.

source

pub fn new_with_height( document: &PdfDocument<'a>, image: &DynamicImage, height: PdfPoints ) -> Result<Self, PdfiumError>

Creates a new PdfPageImageObject from the given arguments. The page object will be scaled vertically to match the given height; its width will be adjusted to maintain the aspect ratio of the given image. The returned page object will not be rendered until it is added to a PdfPage using the PdfPageObjects::add_image_object() function.

This function is only available when this crate’s image feature is enabled.

source

pub fn new_with_size( document: &PdfDocument<'a>, image: &DynamicImage, width: PdfPoints, height: PdfPoints ) -> Result<Self, PdfiumError>

Creates a new PdfPageImageObject from the given arguments. The page object will be scaled to match the given width and height. The returned page object will not be rendered until it is added to a PdfPage using the PdfPageObjects::add_image_object() function.

This function is only available when this crate’s image feature is enabled.

source

pub fn get_raw_bitmap(&self) -> Result<PdfBitmap<'_>, PdfiumError>

Returns a new PdfBitmap created from the bitmap buffer backing this PdfPageImageObject, ignoring any image filters, image mask, or object transforms applied to this page object.

source

pub fn get_raw_image(&self) -> Result<DynamicImage, PdfiumError>

Returns a new Image::DynamicImage created from the bitmap buffer backing this PdfPageImageObject, ignoring any image filters, image mask, or object transforms applied to this page object.

This function is only available when this crate’s image feature is enabled.

source

pub fn get_processed_bitmap( &self, document: &PdfDocument<'_> ) -> Result<PdfBitmap<'_>, PdfiumError>

Returns a new PdfBitmap created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

source

pub fn get_processed_image( &self, document: &PdfDocument<'_> ) -> Result<DynamicImage, PdfiumError>

Returns a new Image::DynamicImage created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

This function is only available when this crate’s image feature is enabled.

source

pub fn get_processed_bitmap_with_width( &self, document: &PdfDocument<'_>, width: Pixels ) -> Result<PdfBitmap<'_>, PdfiumError>

Returns a new PdfBitmap created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

The returned bitmap will be scaled during rendering so its width matches the given target width.

source

pub fn get_processed_image_with_width( &self, document: &PdfDocument<'_>, width: Pixels ) -> Result<DynamicImage, PdfiumError>

Returns a new Image::DynamicImage created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

The returned image will be scaled during rendering so its width matches the given target width.

This function is only available when this crate’s image feature is enabled.

source

pub fn get_processed_bitmap_with_height( &self, document: &PdfDocument<'_>, height: Pixels ) -> Result<PdfBitmap<'_>, PdfiumError>

Returns a new PdfBitmap created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

The returned bitmap will be scaled during rendering so its height matches the given target height.

source

pub fn get_processed_image_with_height( &self, document: &PdfDocument<'_>, height: Pixels ) -> Result<DynamicImage, PdfiumError>

Returns a new Image::DynamicImage created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

The returned image will be scaled during rendering so its height matches the given target height.

This function is only available when this crate’s image feature is enabled.

source

pub fn get_processed_bitmap_with_size( &self, document: &PdfDocument<'_>, width: Pixels, height: Pixels ) -> Result<PdfBitmap<'_>, PdfiumError>

Returns a new [PdfBitmap created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

The returned bitmap will be scaled during rendering so its width and height match the given target dimensions.

source

pub fn get_processed_image_with_size( &self, document: &PdfDocument<'_>, width: Pixels, height: Pixels ) -> Result<DynamicImage, PdfiumError>

Returns a new Image::DynamicImage created from the bitmap buffer backing this PdfPageImageObject, taking into account any image filters, image mask, and object transforms applied to this page object.

The returned image will be scaled during rendering so its width and height match the given target dimensions.

This function is only available when this crate’s image feature is enabled.

source

pub fn set_image(&mut self, image: &DynamicImage) -> Result<(), PdfiumError>

Applies the byte data in the given Image::DynamicImage to this PdfPageImageObject.

This function is only available when this crate’s image feature is enabled.

source

pub fn set_bitmap(&mut self, bitmap: &PdfBitmap<'_>) -> Result<(), PdfiumError>

Applies the byte data in the given PdfBitmap to this PdfPageImageObject.

source

pub fn horizontal_dpi(&self) -> Result<f32, PdfiumError>

Returns the horizontal dots per inch resolution of the image assigned to this PdfPageImageObject, based on the intrinsic resolution of the assigned image and the dimensions of this object.

source

pub fn vertical_dpi(&self) -> Result<f32, PdfiumError>

Returns the vertical dots per inch resolution of the image assigned to this PdfPageImageObject, based on the intrinsic resolution of the assigned image and the dimensions of this object.

source

pub fn bits_per_pixel(&self) -> Result<u8, PdfiumError>

Returns the bits per pixel for the image assigned to this PdfPageImageObject.

This value is not available if this object has not been attached to a PdfPage.

source

pub fn color_space(&self) -> Result<PdfColorSpace, PdfiumError>

Returns the color space for the image assigned to this PdfPageImageObject.

This value is not available if this object has not been attached to a PdfPage.

source

pub fn filters(&self) -> PdfPageImageObjectFilters<'_>

Returns the collection of image filters currently applied to this PdfPageImageObject.

source

pub fn transform( &mut self, a: PdfMatrixValue, b: PdfMatrixValue, c: PdfMatrixValue, d: PdfMatrixValue, e: PdfMatrixValue, f: PdfMatrixValue ) -> Result<(), PdfiumError>

Applies the given transformation, expressed as six values representing the six configurable elements of a nine-element 3x3 PDF transformation matrix, to this PdfPageImageObject.

To move, scale, rotate, or skew this PdfPageImageObject, consider using one or more of the following functions. Internally they all use Self::transform(), but are probably easier to use (and certainly clearer in their intent) in most situations.

The order in which transformations are applied is significant. For example, the result of rotating then translating an object may be vastly different from translating then rotating the same object.

An overview of PDF transformation matrices can be found in the PDF Reference Manual version 1.7 on page 204; a detailed description can be founded in section 4.2.3 on page 207.

source

pub fn set_matrix(&mut self, matrix: PdfMatrix) -> Result<(), PdfiumError>

Applies the values in the given PdfMatrix to this PdfPageImageObject.

source

pub fn translate( &mut self, delta_x: PdfPoints, delta_y: PdfPoints ) -> Result<(), PdfiumError>

Moves the origin of this PdfPageImageObject by the given horizontal and vertical delta distances.

source

pub fn scale( &mut self, horizontal_scale_factor: PdfMatrixValue, vertical_scale_factor: PdfMatrixValue ) -> Result<(), PdfiumError>

Changes the size of this PdfPageImageObject, scaling it by the given horizontal and vertical scale factors.

source

pub fn flip_horizontally(&mut self) -> Result<(), PdfiumError>

Flips this PdfPageImageObject horizontally around its origin by applying a horizontal scale factor of -1.

source

pub fn flip_vertically(&mut self) -> Result<(), PdfiumError>

Flips this PdfPageImageObject vertically around its origin by applying a vertical scale factor of -1.

source

pub fn reflect(&mut self) -> Result<(), PdfiumError>

Reflects this PdfPageImageObject by flipping it both horizontally and vertically around its origin.

source

pub fn rotate_counter_clockwise_degrees( &mut self, degrees: PdfMatrixValue ) -> Result<(), PdfiumError>

Rotates this PdfPageImageObject counter-clockwise by the given number of degrees.

source

pub fn rotate_clockwise_degrees( &mut self, degrees: PdfMatrixValue ) -> Result<(), PdfiumError>

Rotates this PdfPageImageObject clockwise by the given number of degrees.

source

pub fn rotate_counter_clockwise_radians( &mut self, radians: PdfMatrixValue ) -> Result<(), PdfiumError>

Rotates this PdfPageImageObject counter-clockwise by the given number of radians.

source

pub fn rotate_clockwise_radians( &mut self, radians: PdfMatrixValue ) -> Result<(), PdfiumError>

Rotates this PdfPageImageObject clockwise by the given number of radians.

source

pub fn skew_degrees( &mut self, x_axis_skew: PdfMatrixValue, y_axis_skew: PdfMatrixValue ) -> Result<(), PdfiumError>

Skews the axes of this PdfPageImageObject by the given angles in degrees.

source

pub fn skew_radians( &mut self, x_axis_skew: PdfMatrixValue, y_axis_skew: PdfMatrixValue ) -> Result<(), PdfiumError>

Skews the axes of this PdfPageImageObject by the given angles in radians.

source

pub fn matrix(&self) -> Result<PdfMatrix, PdfiumError>

Returns the transformation matrix currently applied to this PdfPageImageObject.

source

pub fn get_translation(&self) -> (PdfPoints, PdfPoints)

Returns the current horizontal and vertical translation of the origin of this PdfPageImageObject.

source

pub fn get_horizontal_translation(&self) -> PdfPoints

Returns the current horizontal translation of the origin of this PdfPageImageObject.

source

pub fn get_vertical_translation(&self) -> PdfPoints

Returns the current vertical translation of the origin of this PdfPageImageObject.

source

pub fn get_scale(&self) -> (PdfMatrixValue, PdfMatrixValue)

Returns the current horizontal and vertical scale factors applied to this PdfPageImageObject.

source

pub fn get_horizontal_scale(&self) -> PdfMatrixValue

Returns the current horizontal scale factor applied to this PdfPageImageObject.

source

pub fn get_vertical_scale(&self) -> PdfMatrixValue

Returns the current vertical scale factor applied to this PdfPageImageObject.

source

pub fn get_rotation_counter_clockwise_degrees(&self) -> PdfMatrixValue

Returns the counter-clockwise rotation applied to this PdfPageImageObject, in degrees.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_rotation_clockwise_degrees(&self) -> PdfMatrixValue

Returns the clockwise rotation applied to this PdfPageImageObject, in degrees.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_rotation_counter_clockwise_radians(&self) -> PdfMatrixValue

Returns the counter-clockwise rotation applied to this PdfPageImageObject, in radians.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_rotation_clockwise_radians(&self) -> PdfMatrixValue

Returns the clockwise rotation applied to this PdfPageImageObject, in radians.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_skew_degrees(&self) -> (PdfMatrixValue, PdfMatrixValue)

Returns the current x axis and y axis skew angles applied to this PdfPageImageObject, in degrees.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_x_axis_skew_degrees(&self) -> PdfMatrixValue

Returns the current x axis skew angle applied to this PdfPageImageObject, in degrees.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_y_axis_skew_degrees(&self) -> PdfMatrixValue

Returns the current y axis skew applied to this PdfPageImageObject, in degrees.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_skew_radians(&self) -> (PdfMatrixValue, PdfMatrixValue)

Returns the current x axis and y axis skew angles applied to this PdfPageImageObject, in radians.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_x_axis_skew_radians(&self) -> PdfMatrixValue

Returns the current x axis skew applied to this PdfPageImageObject, in radians.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

source

pub fn get_y_axis_skew_radians(&self) -> PdfMatrixValue

Returns the current y axis skew applied to this PdfPageImageObject, in radians.

If the object is both rotated and skewed, the return value of this function will reflect the combined operation.

Trait Implementations§

source§

impl<'a> From<PdfPageImageObject<'a>> for PdfPageObject<'a>

source§

fn from(object: PdfPageImageObject<'a>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for PdfPageImageObject<'a>

§

impl<'a> !Send for PdfPageImageObject<'a>

§

impl<'a> !Sync for PdfPageImageObject<'a>

§

impl<'a> Unpin for PdfPageImageObject<'a>

§

impl<'a> !UnwindSafe for PdfPageImageObject<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<'a, T> PdfPageObjectCommon<'a> for Twhere T: PdfPageObjectPrivate<'a>,

source§

fn has_transparency(&self) -> bool

Returns true if this PdfPageObject contains transparency.
source§

fn bounds(&self) -> Result<PdfRect, PdfiumError>

Returns the bounding box of this PdfPageObject. Read more
source§

fn transform_from( &mut self, other: &PdfPageObject<'_> ) -> Result<(), PdfiumError>

Transforms this PdfPageObject by applying the transformation matrix read from the given PdfPageObject. Read more
source§

fn set_blend_mode( &mut self, blend_mode: PdfPageObjectBlendMode ) -> Result<(), PdfiumError>

Sets the blend mode that will be applied when painting this PdfPageObject. Read more
source§

fn fill_color(&self) -> Result<PdfColor, PdfiumError>

Returns the color of any filled paths in this PdfPageObject.
source§

fn set_fill_color(&mut self, fill_color: PdfColor) -> Result<(), PdfiumError>

Sets the color of any filled paths in this PdfPageObject.
source§

fn stroke_color(&self) -> Result<PdfColor, PdfiumError>

Returns the color of any stroked lines in this PdfPageObject.
source§

fn set_stroke_color( &mut self, stroke_color: PdfColor ) -> Result<(), PdfiumError>

Sets the color of any stroked lines in this PdfPageObject. Read more
source§

fn stroke_width(&self) -> Result<PdfPoints, PdfiumError>

Returns the width of any stroked lines in this PdfPageObject.
source§

fn set_stroke_width( &mut self, stroke_width: PdfPoints ) -> Result<(), PdfiumError>

Sets the width of any stroked lines in this PdfPageObject. Read more
source§

fn line_join(&self) -> Result<PdfPageObjectLineJoin, PdfiumError>

Returns the line join style that will be used when painting stroked path segments in this PdfPageObject.
source§

fn set_line_join( &mut self, line_join: PdfPageObjectLineJoin ) -> Result<(), PdfiumError>

Sets the line join style that will be used when painting stroked path segments in this PdfPageObject.
source§

fn line_cap(&self) -> Result<PdfPageObjectLineCap, PdfiumError>

Returns the line cap style that will be used when painting stroked path segments in this PdfPageObject.
source§

fn set_line_cap( &mut self, line_cap: PdfPageObjectLineCap ) -> Result<(), PdfiumError>

Sets the line cap style that will be used when painting stroked path segments in this PdfPageObject.
source§

fn is_copyable(&self) -> bool

Returns true if this PdfPageObject can be successfully copied by calling its try_copy() function. Read more
source§

fn try_copy<'b>( &self, document: &'b PdfDocument<'b> ) -> Result<PdfPageObject<'b>, PdfiumError>

Attempts to copy this PdfPageObject by creating a new page object and copying across all the properties of this PdfPageObject to the new page object. Read more
source§

fn width(&self) -> Result<PdfPoints, PdfiumError>

Returns the width of this PdfPageObject.
source§

fn height(&self) -> Result<PdfPoints, PdfiumError>

Returns the height of this PdfPageObject.
source§

fn is_inside_rect(&self, rect: &PdfRect) -> bool

Returns true if the bounds of this PdfPageObject lie entirely within the given rectangle.
source§

fn does_overlap_rect(&self, rect: &PdfRect) -> bool

Returns true if the bounds of this PdfPageObject lie at least partially within the given rectangle.
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.