pub struct SvgImage { /* private fields */ }Expand description
Creates a struct holding an SVG image
Implementations
sourceimpl 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?
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
fn main() {
let app = app::App::default().with_scheme(app::Scheme::Gleam);
let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
let mut frame = Frame::default().with_size(360, 260).center_of(&wind);
frame.set_frame(FrameType::EngravedBox);
let mut image = SvgImage::load("screenshots/RustLogo.svg").unwrap();
image.scale(200, 200, true, true);
frame.set_image(Some(image));
wind.make_resizable(true);
wind.end();
wind.show();
app.run().unwrap();
}sourcepub fn from_data(data: &str) -> Result<SvgImage, FltkError>
pub fn from_data(data: &str) -> Result<SvgImage, FltkError>
Examples found in repository?
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
pub fn new(radius: i32, mut image: image::RgbImage) -> Self {
let mut frame = frame::Frame::new(0, 0, radius * 2, radius * 2, None);
frame.set_frame(enums::FrameType::FlatBox);
frame.draw(move |f| {
image.scale(f.w(), f.h(), false, true);
image.draw(f.x(), f.y(), f.w(), f.h());
let color = f.color().to_rgb();
let s = format!(
"<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n
<svg width='{}' height='{}'>\n
<rect x='{}'
y='{}'
rx='{}'
ry='{}'
width='{}'
height='{}'
fill='none'
stroke='rgb({}, {}, {})'
stroke-width='{}' />\n
</svg>\n",
f.w(),
f.h(),
-f.w() / 2,
-f.w() / 2,
f.w(),
f.w(),
f.w() + f.w(),
f.h() + f.w(),
color.0,
color.1,
color.2,
f.w()
);
let mut s = image::SvgImage::from_data(&s).unwrap();
s.draw(f.x(), f.y(), f.w(), f.h());
});
Self
}More examples
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
pub fn new(x: i32, y: i32, w: i32, h: i32) -> Self {
let mut frm = Frame::new(x, y, w, h, "");
frm.set_frame(FrameType::FlatBox);
frm.set_color(Color::Black);
let on = Rc::from(RefCell::from(false));
frm.draw({
// storing two almost identical images here, in a real application this could be optimized
let on = Rc::clone(&on);
let mut on_svg =
SvgImage::from_data(&POWER.to_string().replace("red", "green")).unwrap();
on_svg.scale(frm.width(), frm.height(), true, true);
let mut off_svg = SvgImage::from_data(POWER).unwrap();
off_svg.scale(frm.width(), frm.height(), true, true);
move |f| {
if *on.borrow() {
on_svg.draw(f.x(), f.y(), f.width(), f.height());
} else {
off_svg.draw(f.x(), f.y(), f.width(), f.height());
};
}
});
frm.handle({
let on = on.clone();
move |f, ev| match ev {
Event::Push => {
let prev = *on.borrow();
*on.borrow_mut() = !prev;
f.do_callback();
f.redraw();
true
}
_ => false,
}
});
Self { frm, on }
}Trait Implementations
sourceimpl ImageExt for SvgImage
impl ImageExt for SvgImage
sourcefn 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
sourcefn 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
sourceunsafe fn as_image_ptr(&self) -> *mut Fl_Image
unsafe fn as_image_ptr(&self) -> *mut Fl_Image
Returns a pointer of the image Read more
sourceunsafe 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
sourcefn to_rgb_data(&self) -> Vec<u8>
fn to_rgb_data(&self) -> Vec<u8>
Returns the underlying raw rgb image data
sourcefn to_raw_data(&self) -> *const *const u8
fn to_raw_data(&self) -> *const *const u8
Returns the underlying raw image data
sourcefn to_rgb(&self) -> Result<RgbImage, FltkError>
fn to_rgb(&self) -> Result<RgbImage, FltkError>
Transforms the image into an RgbImage Read more
sourcefn to_rgb_image(&self) -> Result<RgbImage, FltkError>
fn to_rgb_image(&self) -> Result<RgbImage, FltkError>
Transforms the image into an RgbImage Read more
sourcefn 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
sourcefn 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)
sourcefn depth(&self) -> ColorDepth
fn depth(&self) -> ColorDepth
Gets the image’s depth
sourcefn was_deleted(&self) -> bool
fn was_deleted(&self) -> bool
Checks if the image was deleted
sourceunsafe fn into_image<I: ImageExt>(self) -> I
unsafe fn into_image<I: ImageExt>(self) -> I
Transforms an Image base into another Image Read more
impl Eq for SvgImage
impl Send for SvgImage
impl Sync for SvgImage
Auto Trait Implementations
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more