Before changing size

This commit is contained in:
HistidineDwarf 2023-02-05 18:27:49 -08:00
parent 6a93b27d8c
commit 5b98006a3d
5 changed files with 48 additions and 8 deletions

View File

@ -12,6 +12,11 @@ Optimize:
Fix the weird bug Fix the weird bug
Make blocks start from top right corner (Gives me even sizes) Make blocks start from top right corner (Gives me even sizes)
make it so differentiates between regular, 16:9 size and actual size make it so differentiates between regular, 16:9 size and actual size
Embedding or reading an imperfect causes bugs
Not sure if a problem of embedding or reading
Might be get_pixel
It's not overlapping, I'm sure
I noticed that every second frame seems broken
It stops me from using anything other than 360p/720p It stops me from using anything other than 360p/720p
Might have something built in Might have something built in
Might be the length of file written in instructions Might be the length of file written in instructions

1
output.txt Normal file

File diff suppressed because one or more lines are too long

View File

@ -38,14 +38,11 @@ impl EmbedSource {
let height = image.rows(); let height = image.rows();
let frame_size = Size::new(width, height); let frame_size = Size::new(width, height);
//Cuts off borders if size doesn't perfectly fit
let width = width - (width % size); let width = width - (width % size);
let height = height - (height % size); let height = height - (height % size);
let actual_size = Size::new(width, height); let actual_size = Size::new(width, height);
//Cuts off borders if size doesn't perfectly fit, also -1 cuz index
let width = width - (width % size);
let height = height - (height % size);
EmbedSource { EmbedSource {
image, image,
size, size,

View File

@ -64,6 +64,9 @@ fn translate_binary(binary_data: Vec<bool>) -> anyhow::Result<Vec<u8>>{
} }
} }
// dbg!(binary_data.len());
// dbg!(buffer.len());
// dbg!(byte_data.len());
return Ok(byte_data); return Ok(byte_data);
} }
@ -221,13 +224,44 @@ fn etch_frame(source: &mut EmbedSource, data: &Data, global_index: &mut usize)
return Ok(()); return Ok(());
} }
fn read_frame2(source: &EmbedSource, out_mode: &OutputMode) -> anyhow::Result<Vec<u8>> {
highgui::named_window("window", WINDOW_FULLSCREEN)?;
highgui::imshow("window", &source.image)?;
highgui::wait_key(10000000)?;
imwrite("src/out/test1.png", &source.image, &Vector::new())?;
let half_size = source.size/2;
let width = source.actual_size.width;
let height = source.actual_size.height;
let size = source.size as usize;
let mut binary_data: Vec<bool> = Vec::new();
for y in (half_size..height).step_by(size) {
for x in (half_size..width).step_by(size) {
let rgb = get_pixel(source, x, y).unwrap();
// dbg!(&rgb);
if rgb[0] > 130 {
binary_data.push(true);
} else {
binary_data.push(false);
}
}
}
let translated = translate_binary(binary_data)?;
return Ok(translated);
}
fn read_frame(source: &EmbedSource, out_mode: &OutputMode) -> anyhow::Result<Vec<u8>>{ fn read_frame(source: &EmbedSource, out_mode: &OutputMode) -> anyhow::Result<Vec<u8>>{
// let _timer = Timer::new("Reading frame"); // let _timer = Timer::new("Reading frame");
let size = source.size as usize; let half_size = source.size/2;
let half_size = (source.size/2) as i32;
let width = source.actual_size.width; let width = source.actual_size.width;
let height = source.actual_size.height; let height = source.actual_size.height;
let size = source.size as usize;
// dbg!(width, height);
//Fix this nesting spiral //Fix this nesting spiral
match out_mode { match out_mode {
@ -258,7 +292,7 @@ fn read_frame(source: &EmbedSource, out_mode: &OutputMode) -> anyhow::Result<Vec
continue; continue;
} else { } else {
let rgb = rgb.unwrap(); let rgb = rgb.unwrap();
if rgb[0] >= 130 { if rgb[0] >= 127 {
binary_data.push(true); binary_data.push(true);
} else { } else {
binary_data.push(false); binary_data.push(false);
@ -416,6 +450,7 @@ pub fn read(path: &str) -> anyhow::Result<Vec<u8>> {
let instruction_source = EmbedSource::from(frame.clone(), instruction_size); let instruction_source = EmbedSource::from(frame.clone(), instruction_size);
let (out_mode, settings) = read_instructions(&instruction_source)?; let (out_mode, settings) = read_instructions(&instruction_source)?;
dbg!(&settings); dbg!(&settings);
dbg!(&out_mode);
let mut byte_data: Vec<u8> = Vec::new(); let mut byte_data: Vec<u8> = Vec::new();
loop { loop {
@ -431,6 +466,8 @@ pub fn read(path: &str) -> anyhow::Result<Vec<u8>> {
//CLONING, AAAAAAAAAAAAAA //CLONING, AAAAAAAAAAAAAA
//Massive slow down vvv //Massive slow down vvv
let source = EmbedSource::from(frame.clone(), settings.size); let source = EmbedSource::from(frame.clone(), settings.size);
// let batch = read_frame2(&source, &out_mode)?;
//TEMPORARY
let batch = read_frame(&source, &out_mode)?; let batch = read_frame(&source, &out_mode)?;
byte_data.extend(batch); byte_data.extend(batch);
} }

View File

@ -139,7 +139,7 @@ fn dislodge_path() -> anyhow::Result<()> {
.prompt().unwrap(); .prompt().unwrap();
let out_path = Text::new("Where should the output go ?") let out_path = Text::new("Where should the output go ?")
.with_default("setting_tests/Baby.wav") .with_default("output.wav")
.with_help_message("Please include name of file and extension") .with_help_message("Please include name of file and extension")
.prompt().unwrap(); .prompt().unwrap();