[][src]Struct cairo::ImageSurface

pub struct ImageSurface(_);


impl ImageSurface[src]

pub unsafe fn from_raw_full(
    ptr: *mut cairo_surface_t
) -> Result<ImageSurface, Error>

impl ImageSurface[src]

pub fn create(
    format: Format,
    width: i32,
    height: i32
) -> Result<ImageSurface, Error>

pub fn create_for_data<D: AsMut<[u8]> + 'static>(
    data: D,
    format: Format,
    width: i32,
    height: i32,
    stride: i32
) -> Result<ImageSurface, Error>

pub fn get_data(&mut self) -> Result<ImageSurfaceData<'_>, BorrowError>[src]

Get the pixel data of the image surface, for direct inspection or modification.

Unlike the C API, this method calls flush on the surface.

Returns an error if finish was called on this surface, or if the surface is being referenced by a Context. See with_data if you need to access the data on an image surface that is being referenced by a Context.

pub fn with_data<F: FnOnce(&[u8])>(&self, f: F) -> Result<(), BorrowError>[src]

Call the provided function with access to the pixel data of this image.

Unlike get_data, this can succeed even if there is a Context referencing this image.

pub fn get_format(&self) -> Format[src]

pub fn get_height(&self) -> i32[src]

pub fn get_stride(&self) -> i32[src]

pub fn get_width(&self) -> i32[src]

impl ImageSurface[src]

pub fn create_from_png<R: Read>(stream: &mut R) -> Result<ImageSurface, IoError>[src]

pub fn write_to_png<W: Write>(&self, stream: &mut W) -> Result<(), IoError>[src]

Methods from Deref<Target = Surface>

pub fn to_raw_none(&self) -> *mut cairo_surface_t[src]

pub fn create_similar(
    content: Content,
    width: i32,
    height: i32
) -> Result<Surface, Error>

pub fn create_for_rectangle(&self, bounds: Rectangle) -> Result<Surface, Error>[src]

pub fn get_mime_data(&self, mime_type: &str) -> Option<Vec<u8>>[src]

pub unsafe fn get_mime_data_raw(&self, mime_type: &str) -> Option<&[u8]>[src]

pub fn set_mime_data<T: AsRef<[u8]> + 'static>(
    mime_type: &str,
    slice: T
) -> Result<(), Error>

pub fn supports_mime_type(&self, mime_type: &str) -> bool[src]

pub fn get_device(&self) -> Option<Device>[src]

pub fn set_device_offset(&self, x_offset: f64, y_offset: f64)[src]

pub fn get_device_offset(&self) -> (f64, f64)[src]

pub fn set_device_scale(&self, x_scale: f64, y_scale: f64)[src]

pub fn get_device_scale(&self) -> (f64, f64)[src]

pub fn set_fallback_resolution(
    x_pixels_per_inch: f64,
    y_pixels_per_inch: f64

pub fn get_fallback_resolution(&self) -> (f64, f64)[src]

pub fn create_similar_image(
    format: Format,
    width: i32,
    height: i32
) -> Result<Surface, Error>

pub fn map_to_image(
    extents: Option<RectangleInt>
) -> Result<MappedImageSurface, Error>

pub fn mark_dirty(&self)[src]

pub fn mark_dirty_rectangle(&self, x: i32, y: i32, width: i32, height: i32)[src]

pub fn set_user_data<T: 'static>(
    key: &'static UserDataKey<T>,
    value: Rc<T>

Attach user data to self for the given key.

pub fn get_user_data<T: 'static>(
    key: &'static UserDataKey<T>
) -> Option<Rc<T>>

Return the user data previously attached to self with the given key, if any.

pub fn get_user_data_ptr<T: 'static>(
    key: &'static UserDataKey<T>
) -> Option<NonNull<T>>

Return the user data previously attached to self with the given key, if any, without incrementing the reference count.

The pointer is valid when it is returned from this method, until the cairo object that self represents is destroyed or remove_user_data or set_user_data is called with the same key.

pub fn remove_user_data<T: 'static>(&self, key: &'static UserDataKey<T>)[src]

Unattach from self the user data associated with key, if any. If there is no other Rc strong reference, the data is destroyed.

pub fn flush(&self)[src]

pub fn finish(&self)[src]

pub fn get_type(&self) -> SurfaceType[src]

pub fn finish_output_stream(&self) -> Result<Box<dyn Any>, StreamWithError>[src]

Finish the surface, then remove and return the output stream if any.

This calls Surface::finish, to make sure pending writes are done.

This is relevant for surfaces created for example with [PdfSurface::for_stream].

Use Box::downcast to recover the concrete stream type.


This method panics if:

  • This method was already called for this surface, or
  • This surface was not created with an output stream in the first place, or
  • A previous write to this surface panicked, or
  • A previous write happened while another write was ongoing, or
  • A write is ongoing now.

The latter two cases can only occur with a pathological output stream type that accesses the same surface again from Write::write_all.

Trait Implementations

impl Clone for ImageSurface[src]

impl Debug for ImageSurface[src]

impl Deref for ImageSurface[src]

type Target = Surface

The resulting type after dereferencing.

impl Display for ImageSurface[src]

impl FromGlibPtrBorrow<*mut cairo_surface_t> for ImageSurface[src]

impl FromGlibPtrFull<*mut cairo_surface_t> for ImageSurface[src]

impl FromGlibPtrNone<*mut cairo_surface_t> for ImageSurface[src]

impl<'a> FromValueOptional<'a> for ImageSurface[src]

impl SetValue for ImageSurface[src]

impl SetValueOptional for ImageSurface[src]

impl StaticType for ImageSurface[src]

impl<'a> ToGlibPtr<'a, *mut cairo_surface_t> for ImageSurface[src]

type Storage = &'a Surface

impl TryFrom<Surface> for ImageSurface[src]

type Error = Surface

The type returned in the event of a conversion error.

Auto Trait Implementations

impl RefUnwindSafe for ImageSurface

impl !Send for ImageSurface

impl !Sync for ImageSurface

impl Unpin for ImageSurface

impl UnwindSafe for ImageSurface

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

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

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToSendValue for T where
    T: ToValue + SetValue + Send + ?Sized

impl<T> ToString for T where
    T: Display + ?Sized

impl<T> ToValue for T where
    T: SetValue + ?Sized

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.