1extern crate image;
2extern crate photon_rs as photon;
3extern crate time;
4
5pub fn solarize(
20 image_path: &str,
21 image_output_directory: &str,
22 parse_filename: &str,
23) -> Result<(), Box<dyn std::error::Error>> {
24 let mut img = photon::native::open_image(image_path)?;
25 photon::effects::solarize(&mut img);
26 photon::native::save_image(
27 img,
28 &format!("{}/{}_solarize.jpg", image_output_directory, parse_filename)[..],
29 );
30 println!(
31 "Generate {}/{}_solarize.jpg image.",
32 image_output_directory, parse_filename
33 );
34 Ok(())
35}
36
37pub fn colorize(
52 image_path: &str,
53 image_output_directory: &str,
54 parse_filename: &str,
55) -> Result<(), Box<dyn std::error::Error>> {
56 let mut img = photon::native::open_image(image_path)?;
57 photon::effects::colorize(&mut img);
58 photon::native::save_image(
59 img,
60 &format!("{}/{}_colorize.jpg", image_output_directory, parse_filename)[..],
61 );
62 println!(
63 "Generate {}/{}_colorize.jpg image.",
64 image_output_directory, parse_filename
65 );
66 Ok(())
67}
68
69pub fn halftone(
84 image_path: &str,
85 image_output_directory: &str,
86 parse_filename: &str,
87) -> Result<(), Box<dyn std::error::Error>> {
88 let mut img = photon::native::open_image(image_path)?;
89 photon::effects::halftone(&mut img);
90 photon::native::save_image(
91 img,
92 &format!("{}/{}_halftone.jpg", image_output_directory, parse_filename)[..],
93 );
94 println!(
95 "Generate {}/{}_halftone.jpg image.",
96 image_output_directory, parse_filename
97 );
98 Ok(())
99}
100
101pub fn horizontal_strips(
117 image_path: &str,
118 image_output_directory: &str,
119 parse_filename: &str,
120 num_strips: u8,
121) -> Result<(), Box<dyn std::error::Error>> {
122 let mut img = photon::native::open_image(image_path)?;
123 photon::effects::horizontal_strips(&mut img, num_strips);
124 photon::native::save_image(
125 img,
126 &format!(
127 "{}/{}_horizontal_strips.jpg",
128 image_output_directory, parse_filename
129 )[..],
130 );
131 println!(
132 "Generate {}/{}_horizontal_strips.jpg image.",
133 image_output_directory, parse_filename
134 );
135 Ok(())
136}
137
138pub fn vertical_strips(
154 image_path: &str,
155 image_output_directory: &str,
156 parse_filename: &str,
157 num_strips: u8,
158) -> Result<(), Box<dyn std::error::Error>> {
159 let mut img = photon::native::open_image(image_path)?;
160 photon::effects::vertical_strips(&mut img, num_strips);
161 photon::native::save_image(
162 img,
163 &format!(
164 "{}/{}_horizontal_strips.jpg",
165 image_output_directory, parse_filename
166 )[..],
167 );
168 println!(
169 "Generate {}/{}_horizontal_strips.jpg image.",
170 image_output_directory, parse_filename
171 );
172 Ok(())
173}
174
175pub fn inc_brightness(
191 image_path: &str,
192 image_output_directory: &str,
193 parse_filename: &str,
194 brightness: u8,
195) -> Result<(), Box<dyn std::error::Error>> {
196 let mut img = photon::native::open_image(image_path)?;
197 photon::effects::inc_brightness(&mut img, brightness);
198 photon::native::save_image(
199 img,
200 &format!(
201 "{}/{}_inc_brightness.jpg",
202 image_output_directory, parse_filename
203 )[..],
204 );
205 println!(
206 "Generate {}/{}_inc_brightness.jpg image.",
207 image_output_directory, parse_filename
208 );
209 Ok(())
210}
211
212pub fn multiple_offsets(
230 image_path: &str,
231 image_output_directory: &str,
232 parse_filename: &str,
233 offset: u32,
234 channel_index: usize,
235 channel_index2: usize,
236) -> Result<(), Box<dyn std::error::Error>> {
237 let mut img = photon::native::open_image(image_path)?;
238 photon::effects::multiple_offsets(&mut img, offset, channel_index, channel_index2);
239 photon::native::save_image(
240 img,
241 &format!(
242 "{}/{}_multiple_offsets.jpg",
243 image_output_directory, parse_filename
244 )[..],
245 );
246 println!(
247 "Generate {}/{}_multiple_offsets.jpg image.",
248 image_output_directory, parse_filename
249 );
250 Ok(())
251}
252
253pub fn offset(
270 image_path: &str,
271 image_output_directory: &str,
272 parse_filename: &str,
273 channel_index: usize,
274 offset: u32,
275) -> Result<(), Box<dyn std::error::Error>> {
276 let mut img = photon::native::open_image(image_path)?;
277 photon::effects::offset(&mut img, channel_index, offset);
278 photon::native::save_image(
279 img,
280 &format!("{}/{}_offset.jpg", image_output_directory, parse_filename)[..],
281 );
282 println!(
283 "Generate {}/{}_offset.jpg image.",
284 image_output_directory, parse_filename
285 );
286 Ok(())
287}
288
289pub fn offset_blue(
305 image_path: &str,
306 image_output_directory: &str,
307 parse_filename: &str,
308 offset_amt: u32,
309) -> Result<(), Box<dyn std::error::Error>> {
310 let mut img = photon::native::open_image(image_path)?;
311 photon::effects::offset_blue(&mut img, offset_amt);
312 photon::native::save_image(
313 img,
314 &format!(
315 "{}/{}_offset_blue.jpg",
316 image_output_directory, parse_filename
317 )[..],
318 );
319 println!(
320 "Generate {}/{}_offset_blue.jpg image.",
321 image_output_directory, parse_filename
322 );
323 Ok(())
324}
325
326pub fn offset_green(
342 image_path: &str,
343 image_output_directory: &str,
344 parse_filename: &str,
345 offset_amt: u32,
346) -> Result<(), Box<dyn std::error::Error>> {
347 let mut img = photon::native::open_image(image_path)?;
348 photon::effects::offset_green(&mut img, offset_amt);
349 photon::native::save_image(
350 img,
351 &format!(
352 "{}/{}_offset_green.jpg",
353 image_output_directory, parse_filename
354 )[..],
355 );
356 println!(
357 "Generate {}/{}_offset_green.jpg image.",
358 image_output_directory, parse_filename
359 );
360 Ok(())
361}
362
363pub fn offset_red(
379 image_path: &str,
380 image_output_directory: &str,
381 parse_filename: &str,
382 offset_amt: u32,
383) -> Result<(), Box<dyn std::error::Error>> {
384 let mut img = photon::native::open_image(image_path)?;
385 photon::effects::offset_red(&mut img, offset_amt);
386 photon::native::save_image(
387 img,
388 &format!(
389 "{}/{}_offset_red.jpg",
390 image_output_directory, parse_filename
391 )[..],
392 );
393 println!(
394 "Generate {}/{}_offset_red.jpg image.",
395 image_output_directory, parse_filename
396 );
397 Ok(())
398}
399
400pub fn primary(
415 image_path: &str,
416 image_output_directory: &str,
417 parse_filename: &str,
418) -> Result<(), Box<dyn std::error::Error>> {
419 let mut img = photon::native::open_image(image_path)?;
420 photon::effects::primary(&mut img);
421 photon::native::save_image(
422 img,
423 &format!("{}/{}_primary.jpg", image_output_directory, parse_filename)[..],
424 );
425 println!(
426 "Generate {}/{}_primary.jpg image.",
427 image_output_directory, parse_filename
428 );
429 Ok(())
430}
431
432pub fn tint(
450 image_path: &str,
451 image_output_directory: &str,
452 parse_filename: &str,
453 r_offset: u32,
454 g_offset: u32,
455 b_offset: u32,
456) -> Result<(), Box<dyn std::error::Error>> {
457 let mut img = photon::native::open_image(image_path)?;
458 photon::effects::tint(&mut img, r_offset, g_offset, b_offset);
459 photon::native::save_image(
460 img,
461 &format!("{}/{}_tint.jpg", image_output_directory, parse_filename)[..],
462 );
463 println!(
464 "Generate {}/{}_tint.jpg image.",
465 image_output_directory, parse_filename
466 );
467 Ok(())
468}