Init commit
This commit is contained in:
commit
22506b4eb5
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/target
|
2246
Cargo.lock
generated
Normal file
2246
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "graphics"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
show-image = "0.14.0"
|
||||||
|
image2 = "1.9.2"
|
BIN
result.png
Normal file
BIN
result.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 MiB |
21
shell.nix
Normal file
21
shell.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
with pkgs; mkShell rec {
|
||||||
|
buildInputs = [
|
||||||
|
cargo
|
||||||
|
rustc
|
||||||
|
rust-analyzer
|
||||||
|
pkg-config
|
||||||
|
openimageio
|
||||||
|
wayland
|
||||||
|
libGL
|
||||||
|
libxkbcommon
|
||||||
|
egl-wayland
|
||||||
|
vulkan-loader
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${lib.makeLibraryPath (buildInputs) }
|
||||||
|
'';
|
||||||
|
|
||||||
|
WINIT_UNIX_BACKEND="wayland";
|
||||||
|
}
|
44
src/main.rs
Normal file
44
src/main.rs
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
use image2::*;
|
||||||
|
use show_image::{ImageView, ImageInfo, event, create_window};
|
||||||
|
|
||||||
|
#[show_image::main]
|
||||||
|
fn main() -> Result<(), Error> {
|
||||||
|
println!("Hello, world!");
|
||||||
|
|
||||||
|
// Open the image
|
||||||
|
let image = Image::<u8, Rgb>::open("/home/sweetbread/nix/screenshot.png")?;
|
||||||
|
|
||||||
|
// // Show the image
|
||||||
|
// let img = ImageView::new(ImageInfo::rgb8(image.width().try_into().unwrap(), image.height().try_into().unwrap()), image.buffer());
|
||||||
|
// let win = create_window("image", Default::default()).unwrap();
|
||||||
|
// win.set_image("image-001", img).unwrap();
|
||||||
|
|
||||||
|
// // Wait until Escape will be pressed
|
||||||
|
// for event in win.event_channel().unwrap() {
|
||||||
|
// if let event::WindowEvent::KeyboardInput(event) = event {
|
||||||
|
// if event.input.key_code == Some(event::VirtualKeyCode::Escape) && event.input.state.is_pressed() {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Create new imahe
|
||||||
|
let mut new_image = image.new_like_with_color::<Hsv>();
|
||||||
|
|
||||||
|
for x in 0..image.width() {
|
||||||
|
for y in 0..image.height() {
|
||||||
|
let p = image.get_pixel(Point::new(x, y));
|
||||||
|
let mut hsv_p = Pixel::<Hsv>::new();
|
||||||
|
|
||||||
|
for i in 0..2 {
|
||||||
|
hsv_p[i] = p[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
new_image.set_pixel(Point::new(x, y), &hsv_p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new_image.save("result.png").expect("Failed to save resulting image");
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user