You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cargo run compile /Users/nicojaffer/Downloads/102607-funny-kolobanga-png-image-high-quality.png
Finished dev [unoptimized + debuginfo] target(s) in 1.46s
Running target/debug/bruh compile /Users/nicojaffer/Downloads/102607-funny-kolobanga-png-image-high-quality.png
thread 'main' panicked at 'File delete failed: Os { code: 2, kind: NotFound, message: "No such file or directory" }', main.rs:65:40
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
but i fixed it: heres the updated code (sorry i couldnt upload as file, app github doesnt allow that filetype.) (also this was for the main.rs file)
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
use eframe::egui;
use egui_extras::RetainedImage;
extern crate css_color_parser;
use colors_transform::Rgb;
use image;
use image::GenericImageView;
use std::{
env,
fs::{self, OpenOptions},
io::Write,
path::PathBuf,
};
fn bruh_to_png(path: PathBuf) -> (u32, u32) {
let mut contents: Vec = fs::read(&path).expect("Couldn't read file.");
let binding: Vec<_> = contents.drain(0..8).collect();
let width = vec_to_u32_ne(&binding[0..4]);
let height = vec_to_u32_ne(&binding[4..8]);
let sanitized_content = String::from_utf8_lossy(&contents).replace("\n", "");
let result: Vec<&str> = sanitized_content
.as_bytes()
.chunks(6)
.map(std::str::from_utf8)
.collect::<Result<_, _>>()
.expect("Invalid UTF-8 sequence in the input string");
let info = ImageInfo::new(
(width as i32, height as i32),
ColorType::RGBA8888,
AlphaType::Opaque,
None,
);
let mut surface = Surface::new_raster(&info, None, None).unwrap();
let canvas = surface.canvas();
for (i, color) in result.iter().enumerate() {
let hex = "#".to_owned() + color;
let parsed_color = hex
.parse::<CssColor>()
.expect("Failed to convert Hex to RGB");
let color4f = Color4f::new(
parsed_color.r as f32,
parsed_color.g as f32,
parsed_color.b as f32,
0.004 as f32,
);
let paint = Paint::new(color4f, None);
if i == 0 {
println!("{:?}", paint)
}
let x = i % width as usize;
let y = i / width as usize;
let rect = Rect::from_point_and_size((x as f32, y as f32), (1.0, 1.0));
canvas.draw_rect(rect, &paint);
}
let image = surface.image_snapshot();
if let Some(data) = image.encode(None, EncodedImageFormat::PNG, 100) {
fs::write(TEMP_RESULT_PATH, &*data).expect("Failed to write image data to file");
}
return (width, height);
}
fn main() -> Result<(), eframe::Error> {
let args: Vec = env::args().collect();
let file_path: PathBuf = (&args[1]).into();
if &args[1] == "compile" {
if args.len() < 3 {
panic!("Secondary argument ('path') not provided. Example: `cargo run compile ~/image.png`")
}
let path: PathBuf = (&args[2]).into();
match png_to_bruh(path) {
Ok(()) => println!("{}", "Successfully converted PNG to BRUH"),
Err(_) => println!("{}", "Failed to convert PNG to BRUH"),
}
Ok(())
} else {
let (width, height) = bruh_to_png(file_path);
println!("{} {}", width, height);
let options = eframe::NativeOptions {
initial_window_size: Some(egui::vec2(width as f32, height as f32)),
..Default::default()
};
eframe::run_native(
"Image preview",
options,
Box::new(|_cc| Box::<ImagePreview>::default()),
)
}
}
struct ImagePreview {
image: RetainedImage,
}
impl Default for ImagePreview {
fn default() -> Self {
let image_data = std::fs::read(TEMP_RESULT_PATH).expect("Failed to read image file");
this was the input and output i was getting:
cargo run compile /Users/nicojaffer/Downloads/102607-funny-kolobanga-png-image-high-quality.png
Finished dev [unoptimized + debuginfo] target(s) in 1.46s
Running
target/debug/bruh compile /Users/nicojaffer/Downloads/102607-funny-kolobanga-png-image-high-quality.png
thread 'main' panicked at 'File delete failed: Os { code: 2, kind: NotFound, message: "No such file or directory" }', main.rs:65:40
note: run with
RUST_BACKTRACE=1
environment variable to display a backtracebut i fixed it: heres the updated code (sorry i couldnt upload as file, app github doesnt allow that filetype.) (also this was for the main.rs file)
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
use eframe::egui;
use egui_extras::RetainedImage;
extern crate css_color_parser;
use colors_transform::Rgb;
use image;
use image::GenericImageView;
use std::{
env,
fs::{self, OpenOptions},
io::Write,
path::PathBuf,
};
use skia_safe::{
AlphaType, Color4f, ColorType, EncodedImageFormat, ImageInfo, Paint, Rect, Surface,
};
use css_color_parser::Color as CssColor;
static TEMP_RESULT_PATH: &str = "temp.png";
fn vec_to_u32_ne(bytes: &[u8]) -> u32 {
let mut result = [0u8; 4];
result.copy_from_slice(bytes);
u32::from_ne_bytes(result)
}
fn png_to_bruh(path: PathBuf) -> Result<(), std::io::Error> {
let img = image::open(&path).expect("File not found!");
let mut str = String::new();
let mut last_line = 0;
use std::process::Command;
fn main() {
let path_to_bruh = env::args().nth(1).expect("Missing file path argument");
}
}
fn bruh_to_png(path: PathBuf) -> (u32, u32) {
let mut contents: Vec = fs::read(&path).expect("Couldn't read file.");
let binding: Vec<_> = contents.drain(0..8).collect();
}
fn main() -> Result<(), eframe::Error> {
let args: Vec = env::args().collect();
let file_path: PathBuf = (&args[1]).into();
}
struct ImagePreview {
image: RetainedImage,
}
impl Default for ImagePreview {
fn default() -> Self {
let image_data = std::fs::read(TEMP_RESULT_PATH).expect("Failed to read image file");
}
impl eframe::App for ImagePreview {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
self.image.show(ui);
});
}
}
The text was updated successfully, but these errors were encountered: