Utilize bytes::Bytes iced_runtime:🪟:Screenshot
This commit is contained in:
parent
8d27af24a7
commit
7c084d9695
2 changed files with 12 additions and 5 deletions
|
|
@ -18,6 +18,7 @@ debug = []
|
||||||
multi-window = []
|
multi-window = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
bytes.workspace = true
|
||||||
iced_core.workspace = true
|
iced_core.workspace = true
|
||||||
iced_futures.workspace = true
|
iced_futures.workspace = true
|
||||||
iced_futures.features = ["thread-pool"]
|
iced_futures.features = ["thread-pool"]
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
//! Take screenshots of a window.
|
//! Take screenshots of a window.
|
||||||
use crate::core::{Rectangle, Size};
|
use crate::core::{Rectangle, Size};
|
||||||
|
|
||||||
|
use bytes::Bytes;
|
||||||
use std::fmt::{Debug, Formatter};
|
use std::fmt::{Debug, Formatter};
|
||||||
use std::sync::Arc;
|
|
||||||
|
|
||||||
/// Data of a screenshot, captured with `window::screenshot()`.
|
/// Data of a screenshot, captured with `window::screenshot()`.
|
||||||
///
|
///
|
||||||
|
|
@ -10,7 +10,7 @@ use std::sync::Arc;
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct Screenshot {
|
pub struct Screenshot {
|
||||||
/// The bytes of the [`Screenshot`].
|
/// The bytes of the [`Screenshot`].
|
||||||
pub bytes: Arc<Vec<u8>>,
|
pub bytes: Bytes,
|
||||||
/// The size of the [`Screenshot`].
|
/// The size of the [`Screenshot`].
|
||||||
pub size: Size<u32>,
|
pub size: Size<u32>,
|
||||||
}
|
}
|
||||||
|
|
@ -28,9 +28,9 @@ impl Debug for Screenshot {
|
||||||
|
|
||||||
impl Screenshot {
|
impl Screenshot {
|
||||||
/// Creates a new [`Screenshot`].
|
/// Creates a new [`Screenshot`].
|
||||||
pub fn new(bytes: Vec<u8>, size: Size<u32>) -> Self {
|
pub fn new(bytes: impl Into<Bytes>, size: Size<u32>) -> Self {
|
||||||
Self {
|
Self {
|
||||||
bytes: Arc::new(bytes),
|
bytes: bytes.into(),
|
||||||
size,
|
size,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -68,7 +68,7 @@ impl Screenshot {
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
bytes: Arc::new(chopped),
|
bytes: Bytes::from(chopped),
|
||||||
size: Size::new(region.width, region.height),
|
size: Size::new(region.width, region.height),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -80,6 +80,12 @@ impl AsRef<[u8]> for Screenshot {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Into<Bytes> for Screenshot {
|
||||||
|
fn into(self) -> Bytes {
|
||||||
|
self.bytes
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, thiserror::Error)]
|
#[derive(Debug, thiserror::Error)]
|
||||||
/// Errors that can occur when cropping a [`Screenshot`].
|
/// Errors that can occur when cropping a [`Screenshot`].
|
||||||
pub enum CropError {
|
pub enum CropError {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue