Crates.io | make-quote |
lib.rs | make-quote |
version | 0.5.3 |
source | src |
created_at | 2023-03-11 09:57:52.510047 |
updated_at | 2023-07-11 14:24:23.320752 |
description | A funny toy project that can help you generate a image from someone's quote |
homepage | |
repository | https://github.com/Avimitin/make-quote |
max_upload_size | |
id | 807112 |
size | 542,065 |
This library provides a single function that can generate a quote image from user input. It is still under development, further document and crates.io dependencies will be released someday.
use make_quote::{QuoteProducer, ImgConfig};
// First of all, load an font into memory
let font = std::fs::read("/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc").unwrap();
// Create a image producer
let bold_font = std::fs::read("/usr/share/fonts/noto-cjk/NotoSansCJK-Bold.ttc").unwrap();
let light_font = include_bytes!("/usr/share/fonts/noto-cjk/NotoSansCJK-Light.ttc");
let producer = QuoteProducer::builder()
.font(&bold_font, light_font)
.output_size(1920, 1080) // optional
.font_scale(120.0) // optional
.build();
// Create image configuration
let config = ImgConfig::builder()
.username("V5电竞俱乐部中单选手 Otto")
.avatar("./assets/avatar.png")
.quote("大家好,今天来点大家想看的东西。")
.build();
// Then generate the image and get the image buffer
let buffer = producer.make_image(&config).unwrap();
// You can do anything you like to the buffer, save it or just send it through the net.
std::fs::write("./assets/test.jpg", buffer).unwrap();
This will provide the below example output:
If you want to submit code but don't know how to setup Rust environment,
you can install nix via your package manager OR follow this instruction.
Then follow this instruction to setup flakes.
Finally, run nix develop
in the project root to get cargo
, rustc
and rust-analyzer
...