#image #generate #quote #font #user-input #toy #funny

make-quote

A funny toy project that can help you generate a image from someone's quote

15 releases (4 breaking)

0.5.3 Jul 11, 2023
0.5.2 Jun 28, 2023
0.4.0 Jun 25, 2023
0.3.3 Jun 24, 2023
0.1.0 Mar 11, 2023

#876 in Images

MIT license

540KB
466 lines

Make quote

crates.io docs.rs

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.

Usage

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:

img

Collaboration

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...

Dependencies

~14MB
~250K SLoC