From b08434d7b5f7903b314aa60a868d5772b89aa4ff Mon Sep 17 00:00:00 2001 From: Kenzi Connor Date: Sat, 10 Aug 2024 19:29:59 -0700 Subject: [PATCH] stick the fullscreen 320 back on there --- src/file_data.rs | 25 +++++++++++++------ src/image.rs | 7 ++++++ src/terminal/main.rs | 3 --- src/wasm/file-byte-reader.js | 3 ++- src/wasm/index.html | 47 ++++++++++++++++++++++++++---------- src/wasm/main.rs | 2 +- 6 files changed, 62 insertions(+), 25 deletions(-) diff --git a/src/file_data.rs b/src/file_data.rs index b5cc33f..1e755e7 100644 --- a/src/file_data.rs +++ b/src/file_data.rs @@ -32,13 +32,24 @@ impl Raw { Image(parser.process_input(&self.0, width)) } - pub fn previews(&self, parser: ParserType) -> Vec { - // if let Some(width) = width { - // }else { - self.widths(parser.image_type()) + pub fn height_previews(&self, parser: ParserType, width: usize) -> Vec { + let image = self.parse(parser, width); + let mut previews = self + .heights(parser.image_type(), width) .iter() - .map(|w| Image(parser.process_input(&self.0, *w as usize))) - .collect() - // } + .map(|h| self.parse(parser, width)) + .collect::>(); + previews.push(self.parse(parser, 320)); + previews + } + + pub fn width_previews(&self, parser: ParserType) -> Vec { + let mut previews = self + .widths(parser.image_type()) + .iter() + .map(|w| self.parse(parser, *w as usize)) + .collect::>(); + previews.push(self.parse(parser, 320)); + previews } } diff --git a/src/image.rs b/src/image.rs index 7cd1183..4b29e1f 100644 --- a/src/image.rs +++ b/src/image.rs @@ -57,6 +57,13 @@ impl Image { "".to_string() } } + + pub fn sprites(&self, height: usize) -> Vec { + self.data() + .chunks(height) + .map(|chunk| Image(chunk.to_vec())) + .collect() + } } pub fn tile(data: Vec>, tile_height: usize) -> Vec> { diff --git a/src/terminal/main.rs b/src/terminal/main.rs index a0f90a8..9b8d185 100644 --- a/src/terminal/main.rs +++ b/src/terminal/main.rs @@ -22,9 +22,6 @@ pub fn main() -> Result<(), Box> { let file_data = file_data::Raw::new(&std::fs::read(Path::new(&args.image))?); let parser = ParserType::type_str(&args.image_parser); let image = file_data.parse(parser, args.width); - - let _ = file_data.previews(ParserType::EGARowPlanar); - let image_data = if args.tile_height.is_some() { image::tile(image.data(), args.tile_height.unwrap()) } else { diff --git a/src/wasm/file-byte-reader.js b/src/wasm/file-byte-reader.js index 3b6f354..61ae3e8 100644 --- a/src/wasm/file-byte-reader.js +++ b/src/wasm/file-byte-reader.js @@ -14,7 +14,8 @@ class FileByteReader extends HTMLInputElement { } onFileLoad(event) { - this.emit('loaded', new Int8Array(event.target.result)); + this.data = new Int8Array(event.target.result); + this.emit('loaded', this.data); } onChange() { diff --git a/src/wasm/index.html b/src/wasm/index.html index 61d2efb..2411a7d 100644 --- a/src/wasm/index.html +++ b/src/wasm/index.html @@ -3,31 +3,38 @@

Process your CGA/EGAs

- + +
+ + + + +
\ No newline at end of file diff --git a/src/wasm/main.rs b/src/wasm/main.rs index 83dba93..0c22b92 100644 --- a/src/wasm/main.rs +++ b/src/wasm/main.rs @@ -36,7 +36,7 @@ pub fn previews(data: &[u8]) -> JsValue { pub fn preview(data: &Raw, parser: ParserType) -> Vec { let palette = parser.image_type().default_color_palette(); - data.previews(parser) + data.width_previews(parser) .iter() .map(|p| { format!(