Resize and center text
This commit is contained in:
21
src/main.rs
21
src/main.rs
@@ -74,28 +74,39 @@ fn get_files(options: GenerateOptions) -> Vec<(String, Vec<u8>)> {
|
||||
let mut files: Vec<(String, Vec<u8>)> = Vec::new();
|
||||
use text_to_png::TextRenderer;
|
||||
let renderer = TextRenderer::default();
|
||||
let image_file_ending = "png";
|
||||
|
||||
for f in options.filenames {
|
||||
let mut imgbuf = image::ImageBuffer::new(options.width, options.height);
|
||||
for (x, y, pixel) in imgbuf.enumerate_pixels_mut() {
|
||||
*pixel = image::Rgba([255, 0, 2, 255]);
|
||||
*pixel = image::Rgba([190, 190, 190, 255]);
|
||||
}
|
||||
|
||||
let textpngdata = renderer
|
||||
.render_text_to_png_data(&f, 64, "Dark Turquoise")
|
||||
.render_text_to_png_data(format!("{}.{}", &f, image_file_ending), 100, "White")
|
||||
.unwrap();
|
||||
|
||||
let other = image::ImageReader::new(Cursor::new(textpngdata.data))
|
||||
let pngtextsource = image::ImageReader::new(Cursor::new(textpngdata.data))
|
||||
.with_guessed_format()
|
||||
.unwrap()
|
||||
.decode()
|
||||
.unwrap();
|
||||
imgbuf.copy_from(&other, 0, 0).unwrap();
|
||||
let resized_text = pngtextsource.resize(
|
||||
options.width / 2,
|
||||
options.height,
|
||||
image::imageops::FilterType::Nearest,
|
||||
);
|
||||
let xpos = (imgbuf.width() - resized_text.width()) / 2;
|
||||
let ypos = (imgbuf.height() - resized_text.height()) / 2;
|
||||
imgbuf.copy_from(&resized_text, xpos, ypos).unwrap();
|
||||
|
||||
let mut buf = Cursor::new(Vec::new());
|
||||
imgbuf.write_to(&mut buf, image::ImageFormat::Png).unwrap();
|
||||
|
||||
files.push((String::from(format!("{}.png", f)), buf.into_inner()));
|
||||
files.push((
|
||||
String::from(format!("{}.{}", f, image_file_ending)),
|
||||
buf.into_inner(),
|
||||
));
|
||||
}
|
||||
|
||||
files
|
||||
|
||||
Reference in New Issue
Block a user