Skip to content

Commit

Permalink
parse colorizer with rest of frame
Browse files Browse the repository at this point in the history
  • Loading branch information
pauloday committed Mar 16, 2024
1 parent 73a22ea commit c2a67f6
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 13 deletions.
5 changes: 2 additions & 3 deletions src/crystal.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
extern crate image;
use crate::color::Colorizer;
use crate::Image;
use image::RgbaImage;
use std::f64::consts::TAU;
Expand Down Expand Up @@ -27,7 +26,7 @@ fn frame_phase(frame: u32, frames: u32, phases: f64) -> f64 {
return (TAU / frames as f64) * frame as f64 * phases;
}

pub fn gen(colorizer: &Box<dyn Colorizer>, f: &Image) -> RgbaImage {
pub fn gen(f: &Image) -> RgbaImage {
let mut imgbuf = RgbaImage::new(f.width, f.height);
for (x, y, pixel) in imgbuf.enumerate_pixels_mut() {
let max_dim = f.width.max(f.height);
Expand All @@ -39,7 +38,7 @@ pub fn gen(colorizer: &Box<dyn Colorizer>, f: &Image) -> RgbaImage {
let stacked = combine(waves.collect());
let clamped = (1 as f64).min(stacked.max(0 as f64));
let shade = clamped; // * 255.0;
*pixel = colorizer.colorize(shade, f.frame, f.frames);
*pixel = f.colorizer.colorize(shade, f.frame, f.frames);
}
return imgbuf;
}
8 changes: 1 addition & 7 deletions src/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,8 @@ static ANGLE_HELP: &str = concat!(
);

static COLOR_HELP: &str = concat!(
"Colorizer, one of:\n",
" composite <r shade range>/<r color range>,<g shade range>/<g color range>,<b shade range>/<b color range>\n",
"<r shade range>~<r color range>,<g shade range>~<g color range>,<b shade range>~<b color range>\n",
" Color ranges optional, map a shade range to a color range\n",
" greyscale <brighness>\n",
" brightness 0 is all black and 255 is all white. 127 is neutral\n",
" sawtooth <r>,<g>,<b>,<s>\n",
" use sawtooth waves to map a shade to color values, ",
"r,g,b are the offsets for the wave for that color from 0-0.5, s is a saturation factor"
);

static FORMAT_HELP: &str = concat!(
Expand Down
7 changes: 4 additions & 3 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use crate::input::Opts;
use crate::parse::{parse_colors, parse_image};
use crate::parse::parse_image;
use crate::color::Colorizer;
use clap::Parser;
use image::RgbaImage;
use std::path::Path;
Expand Down Expand Up @@ -28,6 +29,7 @@ struct Image {
pub x_offset: u32,
pub y_offset: u32,
pub angles: Vec<f64>,
pub colorizer: Box<dyn Colorizer>,
}

/*
Expand Down Expand Up @@ -65,8 +67,7 @@ fn gen_frames_thread(
let opts: Opts = input::Opts::parse();
for f in start..end {
let frame = parse_image(&opts, f);
let colorizer = parse_colors(&opts.colorizer, f, opts.frames);
let frame_image = crystal::gen(&colorizer, &frame);
let frame_image = crystal::gen(&frame);
let out_frame = OutFrame {
frame: frame_image,
number: frame.frame,
Expand Down
1 change: 1 addition & 0 deletions src/parse.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,6 @@ pub fn parse_image(opts: &Opts, frame: u32) -> Image {
x_offset: opts.x_offset,
y_offset: opts.y_offset,
angles: parse_angles(&opts.angles, frame, opts.frames, opts.percent),
colorizer: parse_colors(&opts.colorizer, frame, opts.frames),
};
}

0 comments on commit c2a67f6

Please sign in to comment.