From d4946a29d10431770648bce0cf769aaf33d2ff63 Mon Sep 17 00:00:00 2001 From: emilis Date: Wed, 2 Nov 2022 02:10:46 +0000 Subject: [PATCH] changed font file to AsRef, trial code for calling cowgen --- cowgen/src/lib.rs | 45 ++++++++++++++++++++++++++++----------------- cowmic/src/cow.png | Bin 0 -> 52192 bytes cowmic/src/main.rs | 25 +++++++++++++++++++++++-- 3 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 cowmic/src/cow.png diff --git a/cowgen/src/lib.rs b/cowgen/src/lib.rs index 1d000f6..a0d0237 100644 --- a/cowgen/src/lib.rs +++ b/cowgen/src/lib.rs @@ -1,14 +1,14 @@ use ril::prelude::*; -use std::fs::File; +use std::{fs::File, path::Path}; -pub struct Template> { - elements: Vec>, +pub struct Template, V: AsRef> { + elements: Vec>, dimensions: (u32, u32), base: Image, } -impl> Template { - pub fn new(base: Vec, elements: Vec>) -> Result { +impl, V: AsRef> Template { + pub fn new(base: Vec, elements: Vec>) -> Result { let base: Image = Image::from_bytes_inferred(base)?; Ok(Self { dimensions: base.dimensions(), @@ -41,14 +41,14 @@ impl> Template { } } -pub struct Element> { +pub struct Element, V: AsRef> { position: (i32, i32), dimensions: (u32, u32), - media: Media, + media: Media, } -impl> Element { - pub fn new(media: Media, position: (i32, i32), dimensions: (u32, u32)) -> Self { +impl, V: AsRef> Element { + pub fn new(media: Media, position: (i32, i32), dimensions: (u32, u32)) -> Self { Self { position, dimensions, @@ -57,7 +57,7 @@ impl> Element { } } -impl> Into for Element { +impl, V: AsRef> Into for Element { fn into(self) -> Image { match self.media { Media::Image(image) => image.resized( @@ -72,7 +72,7 @@ impl> Into for Element { ) .with( &TextSegment::new( - &Font::from_reader(text.font, 12.0).unwrap(), + &Font::from_reader(File::open(text.font).unwrap(), 12.0).unwrap(), text.text, Dynamic::Rgb(Rgb::new(text.fill.0, text.fill.1, text.fill.2)), ) @@ -82,20 +82,20 @@ impl> Into for Element { } } -pub enum Media> { - Text(Text), +pub enum Media, V: AsRef> { + Text(Text), Image(Image), } -pub struct Text> { +pub struct Text, V: AsRef> { text: T, - font: File, + font: V, size: f32, fill: (u8, u8, u8), } -impl> Text { - pub fn new(text: T, font: File, size: f32, fill: (u8, u8, u8)) -> Self { +impl, V: AsRef> Text { + pub fn new(text: T, font: V, size: f32, fill: (u8, u8, u8)) -> Self { Self { text, font, @@ -105,6 +105,17 @@ impl> Text { } } +#[derive(Clone, Debug)] +pub enum CowError { + Other(String), +} + +impl From for CowError { + fn from(r: ril::Error) -> Self { + CowError::Other(r.to_string()) + } +} + #[cfg(test)] mod tests { #[test] diff --git a/cowmic/src/cow.png b/cowmic/src/cow.png new file mode 100644 index 0000000000000000000000000000000000000000..acf90ad079dd47bfe4c6eb3ce84b9843f5a24a30 GIT binary patch literal 52192 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 =sk0(~hg=!LM0Etxju59OYF9-%5fN;^> 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 Result<(), CowError> { + let out = cowgen::Template::new( + include_bytes!("cow.png").to_vec(), + vec![Element::new( + cowgen::Media::Text(Text::new( + "Hello", + "/usr/share/fonts/TTF/OpenSans-ExtraBold.ttf", + 12.0, + (0, 0, 0), + )), + (0, 0), + (64, 64), + )], + )? + .produce(); + let mut f = File::create("out.png").unwrap(); + f.write_all(&out).unwrap(); + f.flush().unwrap(); + Ok(()) }