Skip to content

Commit 6ace7af

Browse files
su226MeetWq
andauthored
add meme spider (#9)
* add meme `spider` * adjust --------- Co-authored-by: meetwq <meetwq@gmail.com>
1 parent a826934 commit 6ace7af

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+51
-0
lines changed

meme_generator_memes/src/memes.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ mod slogan;
214214
mod smash;
215215
mod sold_out;
216216
mod speechless;
217+
mod spider;
217218
mod stare_at_you;
218219
mod steam_message;
219220
mod step_on;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
use rand::Rng;
2+
use skia_safe::Image;
3+
4+
use meme_generator_core::error::Error;
5+
use meme_generator_utils::{
6+
builder::InputImage,
7+
encoder::{FrameAlign, GifInfo, make_gif_or_combined_gif},
8+
image::ImageExt,
9+
tools::{load_image, local_date},
10+
};
11+
12+
use crate::{options::NoOptions, register_meme};
13+
14+
fn spider(images: Vec<InputImage>, _: Vec<String>, _: NoOptions) -> Result<Vec<u8>, Error> {
15+
let xs = [
16+
174, 174, 174, 169, 165, 160, 154, 150, 144, 141, 137, 133, 130, 119, 115, 113, 108, 103,
17+
103, 97, 91, 85, 87, 79, 74, 79, 75, 75, 78, 79, 77, 77, 70, 81, 93, 94, 104, 110, 119,
18+
123, 131, 134, 143, 154, 158, 161, 163, 169, 174, 173, 174, 173,
19+
];
20+
let mut rng = rand::thread_rng();
21+
22+
let func = |i: usize, images: Vec<Image>| {
23+
let frame = load_image(format!("spider/{i:02}.png"))?;
24+
let mut surface = frame.to_surface();
25+
let canvas = surface.canvas();
26+
let img = images[0].circle().resize_exact((80, 80));
27+
canvas.draw_image(&img, (xs[i], 24 + rng.gen_range(-1..=1)), None);
28+
Ok(surface.image_snapshot())
29+
};
30+
31+
make_gif_or_combined_gif(
32+
images,
33+
func,
34+
GifInfo {
35+
frame_num: 52,
36+
duration: 0.04,
37+
},
38+
FrameAlign::ExtendLoop,
39+
)
40+
}
41+
42+
register_meme!(
43+
"spider",
44+
spider,
45+
min_images = 1,
46+
max_images = 1,
47+
keywords = &["蜘蛛", "蜘蛛爬"],
48+
date_created = local_date(2025, 4, 27),
49+
date_modified = local_date(2025, 4, 27),
50+
);

resources/images/spider/00.png

4.39 KB

resources/images/spider/01.png

4.38 KB

resources/images/spider/02.png

4.23 KB

resources/images/spider/03.png

4.18 KB

resources/images/spider/04.png

4.05 KB

resources/images/spider/05.png

4.04 KB

resources/images/spider/06.png

4 KB

resources/images/spider/07.png

4.22 KB

0 commit comments

Comments
 (0)