pub struct SvgImage { /* private fields */ }Expand description
Creates a struct holding an SVG image
Implementations§
Source§impl SvgImage
impl SvgImage
Sourcepub fn load<P: AsRef<Path>>(path: P) -> Result<SvgImage, FltkError>
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}Sourcepub fn from_data(data: &str) -> Result<SvgImage, FltkError>
pub fn from_data(data: &str) -> Result<SvgImage, FltkError>
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
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 }Trait Implementations§
Source§impl ImageExt for SvgImage
impl ImageExt for SvgImage
Source§fn copy_sized(&self, w: i32, h: i32) -> Self
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)
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,
)
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 as_image_ptr(&self) -> *mut Fl_Image
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
unsafe fn from_image_ptr(ptr: *mut Fl_Image) -> Self
Transforms a raw image pointer to an image Read more
Source§fn as_rgb_image(&self) -> Result<RgbImage, FltkError>
fn as_rgb_image(&self) -> Result<RgbImage, FltkError>
Transforms the image into an
RgbImage Read moreSource§fn scale(
&mut self,
width: i32,
height: i32,
proportional: bool,
can_expand: bool,
)
fn scale( &mut self, width: i32, height: i32, proportional: bool, can_expand: bool, )
Scales the image
Source§fn count(&self) -> i32
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 depth(&self) -> ColorDepth
fn depth(&self) -> ColorDepth
Gets the image’s depth
Source§fn was_deleted(&self) -> bool
fn was_deleted(&self) -> bool
Checks if the image was deleted
Source§unsafe fn into_image<I: ImageExt>(self) -> I
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)
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)
fn desaturate(&mut self)
Desaturate (grayscale) the image
Set this image as the label image for a menu item
impl Eq for SvgImage
impl Send for SvgImage
Available on non-crate feature
single-threaded only.impl Sync for SvgImage
Available on non-crate feature
single-threaded only.Auto Trait Implementations§
impl Freeze for SvgImage
impl RefUnwindSafe for SvgImage
impl Unpin for SvgImage
impl UnwindSafe for SvgImage
Blanket Implementations§
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
Mutably borrows from an owned value. Read more