commit 92848bc56da325a6d305830f22108363090b1de8 Author: Albin Chaboissier Date: Thu Mar 26 16:40:35 2026 +0100 Bad apple tcl diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..8cd452e --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "badapple_tcl" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..c3979d9 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "badapple_tcl" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/b.mp4 b/b.mp4 new file mode 100644 index 0000000..19327f2 Binary files /dev/null and b/b.mp4 differ diff --git a/bsmall.mp4 b/bsmall.mp4 new file mode 100644 index 0000000..bc99643 Binary files /dev/null and b/bsmall.mp4 differ diff --git a/convert.sh b/convert.sh new file mode 100644 index 0000000..6ee9af9 --- /dev/null +++ b/convert.sh @@ -0,0 +1 @@ +ffmpeg -i input_video.mp4 -vf "format=gray,format=monob" -f rawvideo pipe:1 > output.bin diff --git a/main b/main new file mode 100755 index 0000000..53c7ea9 Binary files /dev/null and b/main differ diff --git a/main.c b/main.c new file mode 100644 index 0000000..e94e5e5 --- /dev/null +++ b/main.c @@ -0,0 +1,21 @@ +#include + +int main() +{ + printf("skibidi all message \e[5m\e[40m\e[37m⣿⣿⣿⣿⣿⠟⠋⠄⠄⠄⠄⠄⠄⠄⢁⠈⢻⢿⣿⣿⣿⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⣿⠃⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⡀⠭⢿⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⡟⠄⢀⣾⣿⣿⣿⣷⣶⣿⣷⣶⣶⡆⠄⠄⠄⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⡇⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠄⠄⢸⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⣇⣼⣿⣿⠿⠶⠙⣿⡟⠡⣴⣿⣽⣿⣧⠄⢸⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⣿⣾⣿⣿⣟⣭⣾⣿⣷⣶⣶⣴⣶⣿⣿⢄⣿⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⣿⣿⣿⣿⡟⣩⣿⣿⣿⡏⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⣿⣿⣹⡋⠘⠷⣦⣀⣠⡶⠁⠈⠁⠄⣿⣿⣿⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⣿⣿⣍⠃⣴⣶⡔⠒⠄⣠⢀⠄⠄⠄⡨⣿⣿⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⣿⣿⣿⣦⡘⠿⣷⣿⠿⠟⠃⠄⠄⣠⡇⠈⠻⣿⣿⣿⣿\n" +"⣿⣿⣿⣿⡿⠟⠋⢁⣷⣠⠄⠄⠄⠄⣀⣠⣾⡟⠄⠄⠄⠄⠉⠙⠻\n" +"⡿⠟⠋⠁⠄⠄⠄⢸⣿⣿⡯⢓⣴⣾⣿⣿⡟⠄⠄⠄⠄⠄⠄⠄⠄\n" +"⠄⠄⠄⠄⠄⠄⠄⣿⡟⣷⠄⠹⣿⣿⣿⡿⠁⠄⠄⠄⠄⠄⠄⠄⠄\n" +"⠄⠄⠄⠄⠄⠄⣸⣿⡷⡇⠄⣴⣾⣿⣿⠃⠄⠄⠄⠄⠄⠄⠄⠄⠄\n" +"⠄⠄⠄⠄⠄⠄⣿⣿⠃⣦⣄⣿⣿⣿⠇⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄\n" +"⠄⠄⠄⠄⠄⢸⣿⠗⢈⡶⣷⣿⣿⡏⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄\n"); +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..73ec758 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,68 @@ +use std::{fs::File, io::Read, time::Duration}; + +const WIDTH: usize = 160; +const HEIGHT: usize = 120; + +fn main() +{ + let mut data = vec![]; + File::open("v.bin").unwrap().read_to_end(&mut data).unwrap(); + + let mut k = 0; + print!("\x1B[40m\x1B[37m"); + for frame in data.chunks((WIDTH * HEIGHT) / 8) + { + print!("\x1B[H"); + for j in 0..(HEIGHT / 4) + { + for i in 0..(WIDTH / 2) + { + let offset = retrieve_braille_bits(frame, i, j); + let char = char::from_u32(0x2800 + offset as u32).unwrap(); + print!("{}", char); + } + println!(); + } + std::thread::sleep(Duration::from_millis(50)); + } +} + +fn data_index(data: &[u8], x: usize, y: usize) -> bool +{ + let bit_index = x + y * WIDTH; + let byte_index = bit_index / 8; + let shift_index = 7 - bit_index % 8; + ((data[byte_index] >> shift_index) & 1) != 0 +} + +fn retrieve_braille_bits(data: &[u8], bx: usize, by: usize) -> u8 +{ + let bitmap = [0, 1, 2, 6, 3, 4, 5, 7]; + let mut offset = 0u8; + for i in 0..2 + { + for j in 0..4 + { + let pixel = data_index(data, bx * 2 + i, by * 4 + j); + if pixel + { + offset |= 1 << bitmap[j + 4 * i]; + } + } + } + offset +} + +fn bit_to_bytes(byte: u8) -> [bool; 8] +{ + [ + ((byte >> 7) & 1) != 0, + ((byte >> 6) & 1) != 0, + ((byte >> 5) & 1) != 0, + ((byte >> 4) & 1) != 0, + ((byte >> 3) & 1) != 0, + ((byte >> 2) & 1) != 0, + ((byte >> 1) & 1) != 0, + (byte & 1) != 0, + ] +} diff --git a/v.bin b/v.bin new file mode 100644 index 0000000..7f82e38 Binary files /dev/null and b/v.bin differ