All Projects → lsdlab → avatar-gen

lsdlab / avatar-gen

Licence: MIT license
pillow 生成头像,中英文首字母或者随机像素化。Using pillow for generate avatars, first letter of string in Chinese and English or random pixel like avatars.

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to avatar-gen

monsterid
MonsterID adaptation for Composer and modern PHP versions
Stars: ✭ 20 (-35.48%)
Mutual labels:  avatar, avatar-generator
Nectus
A boilerplate Flask API for a Fullstack Project with some additional packages and configuration prebuilt. ⚙
Stars: ✭ 32 (+3.23%)
Mutual labels:  flask-application, flask-api
boring-avatars
Boring avatars is a tiny JavaScript React library that generates custom, SVG-based avatars from any username and color palette.
Stars: ✭ 3,582 (+11454.84%)
Mutual labels:  avatar, avatar-generator
AvatarGAN
Generate Cartoon Images using Generative Adversarial Network
Stars: ✭ 24 (-22.58%)
Mutual labels:  avatar, avatar-generator
monsterID
The original MonsterID implementation
Stars: ✭ 56 (+80.65%)
Mutual labels:  avatar, avatar-generator
react-nice-avatar
react library for generating avatar
Stars: ✭ 700 (+2158.06%)
Mutual labels:  avatar, avatar-generator
Avataaars Generator
Simple generator React app for avataaars
Stars: ✭ 2,078 (+6603.23%)
Mutual labels:  avatar, avatar-generator
username-availability-checker
Live at : https://username-check.herokuapp.com/
Stars: ✭ 84 (+170.97%)
Mutual labels:  flask-application, flask-api
monsterid
Node.js porting of the original PHP library
Stars: ✭ 15 (-51.61%)
Mutual labels:  avatar, avatar-generator
pixitar
🧝 Pixitar is an avatar generation library written in Ruby.
Stars: ✭ 20 (-35.48%)
Mutual labels:  avatar, avatar-generator
avatarcropper
Simple quick avatar cropper!
Stars: ✭ 45 (+45.16%)
Mutual labels:  avatar, avatar-generator
github-avatar-generator
Generate github-style avatar with java awt
Stars: ✭ 37 (+19.35%)
Mutual labels:  avatar, avatar-generator
minidenticons
Super lightweight SVG identicon (icon avatar) generator
Stars: ✭ 89 (+187.1%)
Mutual labels:  avatar, avatar-generator
identicon-api
A simple API to retrieve SVG identicons
Stars: ✭ 15 (-51.61%)
Mutual labels:  avatar, avatar-generator
TopicsExplorer
Explore your own text collection with a topic model – without prior knowledge.
Stars: ✭ 53 (+70.97%)
Mutual labels:  flask-application
notion-avatar
🪄 An online tool for making notion-style avatars.
Stars: ✭ 1,687 (+5341.94%)
Mutual labels:  avatar
flask-skeleton-api
A boilerplate Python API made with Flask used by Ceuma Group developers team.
Stars: ✭ 18 (-41.94%)
Mutual labels:  flask-api
FotoKilof
GUI for ImageMagick
Stars: ✭ 114 (+267.74%)
Mutual labels:  pillow
tapmap
Command line keyboard heatmap generator.
Stars: ✭ 19 (-38.71%)
Mutual labels:  pillow
jack bunny
Inspired by Facebook's bunnylol search engine.
Stars: ✭ 19 (-38.71%)
Mutual labels:  flask-application

avatar-gen

Build Status Build Status

pillow 头像生成,中文或英文首字母或者随机像素化。

Using pillow for generate avatars, first letter of string in Chinese and English or random pixel like avatars.

参考了 https://github.com/maethor/avatar-generatorhttps://github.com/richardasaurus/randomavatar

第一个库用的字体不能生成中文,换成了思源黑体,然后位置也调整了一下才能把字放在中间。

Flask API

参考 app.py,用了 celery,再 Docker 化做成微服务。

python app.py    # python 单进程
gunicorn app:app -c gunicorn.conf    # four worker and gevent
celery -A app.celery worker --loglevel=info --autoscale=4,2     # celery job queue

Docker 运行

用 Docker 运行请注意 app.py 里面的 app.config.update() Redis 作为 Celery 的 Broker, redis host 用 docker-compose.yml 的 container_name avatar-gen-redis

docker-compose up

两个 API,都是 GET 方法,filetype 参数可以不传:

curl -X GET 'http://localhost:5000/api/v1/letter_avatar?size=128&[email protected]&filetype=PNG'
curl -X GET 'http://localhost:5000/api/v1/pixel_avatar?size=128&[email protected]&filetype=PNG'

Python 项目包安装方法 Python project package Installation:

pip install git+https://github.com/lsdlab/avatar-gen.git

使用方法 Usage:

生成出来的是 image byte array,自己用 PIL 保存。

generate result is image byte array, you need to save to file using PIL.

import io
from PIL import Image
from avatar_gen.letter_avatar import LetterAvatar
from avatar_gen.pixel_avatar import PixelAvatar

# generate letter avatar in Chinese or Enginlish character
image_byte_array = LetterAvatar.generate(size=128, string="[email protected]", filetype="PNG")
# image_byte_array = LetterAvatar.generate(size=128, string="[email protected]", filetype="PNG")
file_path = "/Users/Chen/PythonProjects/avatar-gen/letter_avatar.png"
image = Image.open(io.BytesIO(image_byte_array))
image.save(file_path)

# generate pixel avatar
pixel_avatar = PixelAvatar(rows=10, columns=10)
image_byte_array = pixel_avatar.get_image(size=128, string="[email protected]", filetype="PNG")
file_path = "/Users/Chen/PythonProjects/avatar-gen/pixel_avatar.png"
image = Image.open(io.BytesIO(image_byte_array))
image.save(file_path)
# or you can save image file using instance function
# return pixel_avatar.save(
    # image_byte_array=image_byte_array, save_location='pixel_avatar.png')

生成示例 examples:

Test

pytest

output:

Test session starts (platform: darwin, Python 3.6.3, pytest 3.5.0, pytest-sugar 0.9.1)
rootdir: /Users/Chen/PythonProjects/avatar-gen, inifile:
plugins: sugar-0.9.1, flask-0.10.0, django-3.1.2

 test_avatar_gen.py ✓✓                                                     100% ██████████

Results (0.16s):
       2 passed
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].