SvgImage

Struct SvgImage 

Source
pub struct SvgImage { /* private fields */ }
Expand description

Creates a struct holding an SVG image

Implementations§

Source§

impl SvgImage

Source

pub fn load<P: AsRef<Path>>(path: P) -> Result<SvgImage, FltkError>

Loads the image from a filesystem path, doesn’t check for the validity of the data

§Errors

Errors on non-existent path or invalid format

Examples found in repository?
examples/hello_svg.rs (line 12)
5fn main() {
6    let app = app::App::default().with_scheme(app::Scheme::Gleam);
7
8    let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
9
10    let mut frame = Frame::default().with_size(360, 260).center_of_parent();
11    frame.set_frame(FrameType::EngravedBox);
12    let mut image1 = SvgImage::load("screenshots/RustLogo.svg").unwrap();
13    image1.scale(200, 200, true, true);
14    frame.set_image(Some(image1));
15
16    wind.make_resizable(true);
17    wind.end();
18    wind.show();
19
20    app.run().unwrap();
21}
Source

pub fn from_data(data: &str) -> Result<SvgImage, FltkError>

Loads the image from data/memory

§Errors

Errors on invalid format

Examples found in repository?
examples/gradients.rs (line 84)
53fn create_horizontal_svg_gradient_frame(
54    x: i32,
55    y: i32,
56    w: i32,
57    h: i32,
58    col1: Color,
59    col2: Color,
60) -> frame::Frame {
61    let mut frame = frame::Frame::new(x, y, w, h, "Svg");
62    frame.draw(move |f| {
63        let (r1, g1, b1) = Color::inactive(&col1).to_rgb();
64        let (r2, g2, b2) = Color::inactive(&col2).to_rgb();
65        let svg = format!(
66            "<svg viewBox='0 0 {} {}'>
67        <defs>
68        <linearGradient id='grad1' x1='0%' y1='0%' x2='0%' y2='100%'>
69        <stop offset='0%' style='stop-color:rgb({},{},{});stop-opacity:1' />
70        <stop offset='100%' style='stop-color:rgb({},{},{});stop-opacity:1' />
71        </linearGradient>
72        </defs>
73        <rect width='100%' height='100%' fill='url(#grad1)' />
74        </svg>",
75            f.w(),
76            f.h() + 1,
77            r1,
78            g1,
79            b1,
80            r2,
81            g2,
82            b2
83        );
84        let mut image = image::SvgImage::from_data(&svg).unwrap();
85        image.draw(f.x(), f.y(), f.w(), f.h());
86        set_draw_color(Color::Black);
87        set_font(Font::Helvetica, app::font_size());
88        draw_text_boxed(&f.label().unwrap(), f.x(), f.y(), f.w(), f.h(), f.align());
89    });
90    frame
91}
More examples
Hide additional examples
examples/rounded_images.rs (line 39)
6    pub fn new(radius: i32, mut image: image::RgbImage) -> Self {
7        let mut frame = frame::Frame::new(0, 0, radius * 2, radius * 2, None);
8        frame.set_frame(enums::FrameType::FlatBox);
9        frame.draw(move |f| {
10            image.scale(f.w(), f.h(), false, true);
11            image.draw(f.x(), f.y(), f.w(), f.h());
12            let color = f.color().to_rgb();
13            let s = format!(
14                "<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n
15              <svg width='{}' height='{}'>\n
16                <rect x='{}' 
17                    y='{}' 
18                    rx='{}' 
19                    ry='{}' 
20                    width='{}' 
21                    height='{}' 
22                    fill='none' 
23                    stroke='rgb({}, {}, {})' 
24                    stroke-width='{}' />\n
25              </svg>\n",
26                f.w(),
27                f.h(),
28                -f.w() / 2,
29                -f.w() / 2,
30                f.w(),
31                f.w(),
32                f.w() + f.w(),
33                f.h() + f.w(),
34                color.0,
35                color.1,
36                color.2,
37                f.w()
38            );
39            let mut s = image::SvgImage::from_data(&s).unwrap();
40            s.draw(f.x(), f.y(), f.w(), f.h());
41        });
42        Self
43    }
Source

pub fn normalize(&mut self)

Rasterize an SvgImage

Trait Implementations§

Source§

impl Clone for SvgImage

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SvgImage

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for SvgImage

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl ImageExt for SvgImage

Source§

fn copy(&self) -> Self

Performs a deep copy of the image
Source§

fn copy_sized(&self, w: i32, h: i32) -> Self

Performs a deep copy of the image but to a new size. This will make use of the scaling algorithm when resizing.
Source§

fn draw(&mut self, arg2: i32, arg3: i32, arg4: i32, arg5: i32)

Draws the image at the presupplied coordinates and size
Source§

fn draw_ext( &mut self, arg2: i32, arg3: i32, arg4: i32, arg5: i32, cx: i32, cy: i32, )

Draws the image at the presupplied coordinates and size and offset cx, cy
Source§

fn w(&self) -> i32

Return the width of the image
Source§

fn h(&self) -> i32

Return the height of the image
Source§

fn as_image_ptr(&self) -> *mut Fl_Image

Returns a pointer of the image
Source§

unsafe fn from_image_ptr(ptr: *mut Fl_Image) -> Self

Transforms a raw image pointer to an image Read more
Source§

fn as_rgb_data(&self) -> Vec<u8>

Returns the underlying raw rgb image data
Source§

fn as_rgb_image(&self) -> Result<RgbImage, FltkError>

Transforms the image into an RgbImage Read more
Source§

fn scale( &mut self, width: i32, height: i32, proportional: bool, can_expand: bool, )

Scales the image
Source§

fn count(&self) -> i32

Return the count of pointers in an image (Pixmaps have more than 1, bitmaps have 0, Rgb based images have 1)
Source§

fn data_w(&self) -> i32

Gets the image’s data width
Source§

fn data_h(&self) -> i32

Gets the image’s data height
Source§

fn depth(&self) -> ColorDepth

Gets the image’s depth
Source§

fn ld(&self) -> i32

Gets the image’s line data size
Source§

fn inactive(&mut self)

Greys the image
Source§

unsafe fn delete(img: Self)

Deletes the image Read more
Source§

fn was_deleted(&self) -> bool

Checks if the image was deleted
Source§

unsafe fn into_image<I: ImageExt>(self) -> I

Transforms an Image base into another Image Read more
Source§

fn color_average(&mut self, c: Color, i: f32)

Blend the image with color c with weight i in range [0,1]
Source§

fn desaturate(&mut self)

Desaturate (grayscale) the image
Source§

fn uncache(&mut self)

Clear internal caches
Source§

fn label_for_menu_item(&self, item: &mut MenuItem)

Set this image as the label image for a menu item
Source§

impl PartialEq for SvgImage

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SvgImage

Source§

impl Send for SvgImage

Available on non-crate feature single-threaded only.
Source§

impl Sync for SvgImage

Available on non-crate feature single-threaded only.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.