前言
刚刚过完年,把这样那样的事情忙完,就赶紧把博客剩下的主要功能都先做完了,感觉一身轻松。
闲下来了就抽空看看Github上的项目,偶然间发现Github的默认头像很有特色,它并不像其它的网站一样使用一张默认图片,而是临时随机生成一张,很有特色,看起来也挺好玩的,于是就想着自己也弄一个仿制品来玩玩吧。
准备工作
先研究一下Github默认头像的结构,先拿几张Github用户的默认头像来看看:
github_user_avatar_1
github_user_avatar_2
先查看一下这些图片的大小,为 420*420px,仔细看一下,结构应该是这样的:
中心矩阵为 5x5
每一块长度为 70px
边缘的灰色条条长度为 35px
搞清楚这些,就可以开始自己撸了,决定使用 Java + OpenCV 3.4 来制作图像。
代码
GithubAvatarGenerator.java
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import java.util.Random;
/**
* Github头像生成器
*/
public class GithubAvatarGenerator {
private static final int GITHUB_AVATAR_ROWS = 420;
private static final int GITHUB_AVATAR_COLS = 420;
// 围边使用的灰色
private static final int [] COLOR_GREY_BGR = new int[] {
230, 230, 230
};
// 选出一些大概会比较好看的颜色池用于生成
private static final int [][] COLOR_POOL_RGB = new int[][] {
{170, 205, 102},
{159, 255, 84},
{209, 206, 0},
{255, 255, 0},
{47, 107, 85},
{47, 255, 173},
{0, 173, 205},
{8, 101, 139},
{180, 180, 238},
{106, 106, 255},
{155, 211, 255},
{204, 50, 153},
{101, 119, 139}
};