Remove image at runtime

This commit is contained in:
Aster committed 2022-02-13 01:36:51 +08:00
1 parent f6b30d26b9
commit 21b436b7bf
3 files changed
+28 -10

No files matched your search

+1 -1
View File
@@ -32,7 +32,6 @@ dioxus-html = { path = "../html", features = ["serialize"], version = "^0.1.6" }
webbrowser = "0.5.5"
mime_guess = "2.0.3"
dioxus-interpreter-js = { path = "../interpreter", version = "^0.0.0" }
image = "0.24.0"
[features]
@@ -42,3 +41,4 @@ tokio_runtime = ["tokio"]
[dev-dependencies]
dioxus-hooks = { path = "../hooks" }
image = "0.24.0"
+27 -9
View File
@@ -1,6 +1,3 @@
use image::io::Reader as ImageReader;
use image::ImageFormat;
use std::io::Cursor;
use wry::application::window::Icon;
use wry::{
application::{
@@ -91,12 +88,8 @@ impl DesktopConfig {
impl DesktopConfig {
pub(crate) fn with_default_icon(mut self) -> Self {
let png: &[u8] = include_bytes!("default_icon.png");
let mut reader = ImageReader::new(Cursor::new(png));
reader.set_format(ImageFormat::Png);
let icon = reader.decode().expect("image parse failed");
let rgba = Icon::from_rgba(icon.as_bytes().to_owned(), icon.width(), icon.height())
.expect("image parse failed");
let bin: &[u8] = include_bytes!("default_icon.bin");
let rgba = Icon::from_rgba(bin.to_owned(), 460, 460).expect("image parse failed");
self.window.window.window_icon = Some(rgba);
self
}
@@ -107,3 +100,28 @@ impl Default for DesktopConfig {
Self::new()
}
}
// dirty trick, avoid introducing `image` at runtime
// TODO: use serde when `Icon` impl serde
#[test]
#[ignore]
fn prepare_default_icon() {
use image::io::Reader as ImageReader;
use image::ImageFormat;
use std::fs::File;
use std::io::Cursor;
use std::io::Write;
use std::path::PathBuf;
let png: &[u8] = include_bytes!("default_icon.png");
let mut reader = ImageReader::new(Cursor::new(png));
reader.set_format(ImageFormat::Png);
let icon = reader.decode().unwrap();
let bin = PathBuf::from(file!())
.parent()
.unwrap()
.join("default_icon.bin");
println!("{:?}", bin);
let mut file = File::create(bin).unwrap();
file.write_all(icon.as_bytes()).unwrap();
println!("({}, {})", icon.width(), icon.height())
}
Binary file not shown.