pub struct Image {
pub source: ImageSource,
pub format: ImageFormat,
pub size: Vec2,
/* private fields */
}Expand description
Image.
Fields§
§source: ImageSourceSource.
format: ImageFormatFormat.
size: Vec2Size (in pixels).
Implementations§
Source§impl Image
impl Image
Sourcepub fn new_owned_from_gif_file<PathT>(
path: PathT,
compress: bool,
) -> Result<Self>
Available on crate feature gif only.
pub fn new_owned_from_gif_file<PathT>( path: PathT, compress: bool, ) -> Result<Self>
gif only.Constructor.
The implementation only supports RGBA.
Sourcepub fn new_stream_from_gif_file<PathT>(path: PathT) -> Result<Self>
Available on crate feature gif only.
pub fn new_stream_from_gif_file<PathT>(path: PathT) -> Result<Self>
gif only.Constructor.
The implementation only supports RGBA.
Examples found in repository?
examples/gif.rs (line 13)
8fn main() {
9 let mut cursive = default();
10
11 cursive.add_layer(Panel::new(ImageView::default().with_image(
12 // GIFs will always be RGBA
13 Image::new_stream_from_gif_file(FILE).expect("new_stream_from_gif_file"),
14 )));
15
16 cursive.add_global_callback('q', |cursive| cursive.quit());
17
18 cursive.run();
19}Source§impl Image
impl Image
Sourcepub fn new_owned_from_jpeg_file<PathT>(
path: PathT,
format: ImageFormat,
compress: bool,
) -> Result<Self>
Available on crate feature jpeg only.
pub fn new_owned_from_jpeg_file<PathT>( path: PathT, format: ImageFormat, compress: bool, ) -> Result<Self>
jpeg only.Sourcepub fn new_stream_from_jpeg_file<PathT>(
path: PathT,
format: ImageFormat,
) -> Result<Self>
Available on crate feature jpeg only.
pub fn new_stream_from_jpeg_file<PathT>( path: PathT, format: ImageFormat, ) -> Result<Self>
jpeg only.Examples found in repository?
examples/scrollable.rs (line 20)
12fn main() {
13 let mut cursive = default();
14
15 cursive.add_layer(
16 Panel::new(
17 ImageView::default()
18 .with_image(
19 // Note that RGBA is supported, too, if you need transparency
20 Image::new_stream_from_jpeg_file(FILE, ImageFormat::RGB).expect("new_stream_from_jpeg_file"),
21 // If you prefer to keep the image data in memory:
22 // Image::new_owned_from_jpeg_file(FILE, ImageFormat::RGB, true).expect("new_owned_from_jpeg_file"),
23 )
24 .with_sizing(Sizing::original())
25 .scrollable()
26 .scroll_x(true),
27 )
28 .fixed_size((50, 20)),
29 );
30
31 cursive.add_global_callback('q', |cursive| cursive.quit());
32
33 cursive.run();
34}Source§impl Image
impl Image
Sourcepub fn new_owned_from_pdf_file<PathT>(
path: PathT,
format: ImageFormat,
scale: f64,
compress: bool,
) -> Result<Vec<Self>>
Available on crate feature pdf only.
pub fn new_owned_from_pdf_file<PathT>( path: PathT, format: ImageFormat, scale: f64, compress: bool, ) -> Result<Vec<Self>>
pdf only.Constructor.
Creates an image for every page in the PDF.
Examples found in repository?
examples/pdf.rs (line 16)
10fn main() {
11 let mut cursive = default();
12
13 // The constructor returns a vector of images, one for each page in the PDF
14 // PDF pages can be either PNG or RGBA (PNG is usually more efficient)
15 // Note that we can apply scaling during rendering
16 let images = Image::new_owned_from_pdf_file(FILE, ImageFormat::PNG, 1.5, false).expect("new_owned_from_pdf_file");
17
18 cursive.set_user_data(Pages::new(images));
19
20 cursive.add_layer(
21 Dialog::around(
22 Panel::new(
23 ImageView::default().with_sizing(Sizing::original()).with_name(NAME).scrollable().scroll_x(true),
24 )
25 .fixed_size((50, 30)),
26 )
27 .button("Previous", |cursive| flip_page(cursive, -1))
28 .button("Next", |cursive| flip_page(cursive, 1)),
29 );
30
31 select_page(&mut cursive, 0);
32
33 cursive.add_global_callback('q', |cursive| cursive.quit());
34
35 cursive.run();
36}Sourcepub fn new_stream_from_pdf_file<PathT>(
path: PathT,
format: ImageFormat,
scale: f64,
) -> Result<Vec<Self>>
Available on crate feature pdf only.
pub fn new_stream_from_pdf_file<PathT>( path: PathT, format: ImageFormat, scale: f64, ) -> Result<Vec<Self>>
pdf only.Source§impl Image
impl Image
Sourcepub fn new_png_file<PathT>(path: PathT) -> Result<Self>
Available on crate feature png only.
pub fn new_png_file<PathT>(path: PathT) -> Result<Self>
png only.Constructor.
Gets the image size by decoding the PNG header.
Examples found in repository?
examples/positioning.rs (line 22)
15fn main() {
16 let mut cursive = default();
17
18 cursive.add_layer(Panel::new(
19 ImageView::default()
20 // We're also showing the use of new_png_file(), which discovers the image size for us
21 // (requires the "png" feature)
22 .with_image(Image::new_png_file(FILE).expect("new_png_file"))
23 .with_name(NAME)
24 .fixed_size((50, 20)),
25 ));
26
27 cursive.add_global_callback('s', |cursive| {
28 _ = cursive.call_on_name(NAME, |image_view: &mut ImageView| {
29 image_view.set_sizing(match image_view.sizing() {
30 Sizing::Shrink => Sizing::Fit,
31 Sizing::Fit => Sizing::Scale(3.),
32 Sizing::Scale(_) => Sizing::Shrink,
33 })
34 });
35 });
36
37 cursive.add_global_callback('h', |cursive| {
38 _ = cursive.call_on_name(NAME, |image_view: &mut ImageView| {
39 image_view.set_align(match image_view.align() {
40 Align { h: HAlign::Left, v } => Align { h: HAlign::Center, v },
41 Align { h: HAlign::Center, v } => Align { h: HAlign::Right, v },
42 Align { h: HAlign::Right, v } => Align { h: HAlign::Left, v },
43 })
44 });
45 });
46
47 cursive.add_global_callback('v', |cursive| {
48 _ = cursive.call_on_name(NAME, |image_view: &mut ImageView| {
49 image_view.set_align(match image_view.align() {
50 Align { h, v: VAlign::Top } => Align { h, v: VAlign::Center },
51 Align { h, v: VAlign::Center } => Align { h, v: VAlign::Bottom },
52 Align { h, v: VAlign::Bottom } => Align { h, v: VAlign::Top },
53 })
54 });
55 });
56
57 cursive.add_global_callback('q', |cursive| cursive.quit());
58
59 cursive.run();
60}Source§impl Image
impl Image
Sourcepub fn new_owned_from_svg_file<PathT>(
path: PathT,
format: ImageFormat,
scale: f64,
compress: bool,
) -> Result<Self>
Available on crate feature svg only.
pub fn new_owned_from_svg_file<PathT>( path: PathT, format: ImageFormat, scale: f64, compress: bool, ) -> Result<Self>
svg only.Sourcepub fn new_stream_from_svg_file<PathT>(
path: PathT,
format: ImageFormat,
scale: f64,
) -> Result<Self>
Available on crate feature svg only.
pub fn new_stream_from_svg_file<PathT>( path: PathT, format: ImageFormat, scale: f64, ) -> Result<Self>
svg only.Examples found in repository?
examples/svg.rs (line 15)
9fn main() {
10 let mut cursive = default();
11
12 cursive.add_layer(Panel::new(ImageView::default().with_image(
13 // SVG can be either PNG or RGBA (PNG is usually more efficient)
14 // Note that we can apply scaling during rendering
15 Image::new_stream_from_svg_file(FILE, ImageFormat::PNG, 2.5).expect("new_stream_from_svg_file"),
16 )));
17
18 cursive.add_global_callback('q', |cursive| cursive.quit());
19
20 cursive.run();
21}Source§impl Image
impl Image
Sourcepub fn new_owned<SizeT>(
data: Vec<u8>,
compressed: bool,
format: ImageFormat,
size: SizeT,
) -> Self
pub fn new_owned<SizeT>( data: Vec<u8>, compressed: bool, format: ImageFormat, size: SizeT, ) -> Self
Constructor.
Sourcepub fn new_file<PathT, SizeT>(
path: PathT,
compressed: bool,
format: ImageFormat,
size: SizeT,
) -> Self
pub fn new_file<PathT, SizeT>( path: PathT, compressed: bool, format: ImageFormat, size: SizeT, ) -> Self
Constructor.
Examples found in repository?
examples/simple.rs (lines 14-19)
9fn main() {
10 let mut cursive = default();
11
12 // By default the image view uses "shrink" sizing
13
14 cursive.add_layer(Panel::new(ImageView::default().with_image(Image::new_file(
15 FILE,
16 false,
17 ImageFormat::PNG,
18 (96, 96),
19 ))));
20
21 cursive.add_global_callback('q', |cursive| cursive.quit());
22
23 cursive.run();
24}Sourcepub fn new_stream<ImageStreamT, SizeT>(
stream: ImageStreamT,
format: ImageFormat,
size: SizeT,
) -> Self
pub fn new_stream<ImageStreamT, SizeT>( stream: ImageStreamT, format: ImageFormat, size: SizeT, ) -> Self
Constructor.
Sourcepub fn into_owned(&mut self) -> Result<()>
pub fn into_owned(&mut self) -> Result<()>
Into owned.
Trait Implementations§
Source§impl KittyImage for Image
impl KittyImage for Image
Source§fn register(&self) -> Result<usize>
fn register(&self) -> Result<usize>
Register with terminal (if not already registered). Read more
Auto Trait Implementations§
impl !Freeze for Image
impl !RefUnwindSafe for Image
impl Send for Image
impl Sync for Image
impl Unpin for Image
impl UnsafeUnpin for Image
impl !UnwindSafe for Image
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