Skip to content
Generate avatars using the text initials
Python
Branch: master
Clone or download
Latest commit 6b9ab97 Aug 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
avinit Removed unused style code and updated README Aug 20, 2019
.gitignore Version bump Sep 29, 2017
LICENSE Initial commit Aug 19, 2016
README.rst Removed unused style code and updated README Aug 20, 2019
setup.py update lib version Apr 9, 2019

README.rst

avinit

Generate avatars using name initials

Avinit gets the first letter of the first and last word of a given text and generates a SVG avatar from it. Avinit it's also capable to generate a data link so the avatar can be sent directly in the URL.

Inspired on: http://judelicio.us/initial.js/

Installation

pip install avinit

If you need PNG support you will also need to install CairoSVG. This can be accomplished by:

pip install avinit[png]

Usage

In [1]: import avinit

In [2]: avinit.get_svg_avatar('seocam')
Out[2]: '<svg xmlns="http://www.w3.org/2000/svg" pointer-events="none" width="46" height="46" style="background-color: #3498db; -moz-border-radius: 0px; width: 46px; height: 46px; border-radius: 0px"> <text text-anchor="middle" y="50%" x="50%" dy="0.35em" pointer-events="auto" fill="#ffffff" font-family="HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif" style="font-weight: 400; font-size: 20px">S</text> </svg>'

In [3]: avinit.get_svg_avatar('Sergio Oliveira')
Out[3]: '<svg xmlns="http://www.w3.org/2000/svg" pointer-events="none" width="46" height="46" style="background-color: #d870ad; -moz-border-radius: 0px; width: 46px; height: 46px; border-radius: 0px"> <text text-anchor="middle" y="50%" x="50%" dy="0.35em" pointer-events="auto" fill="#ffffff" font-family="HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif" style="font-weight: 400; font-size: 20px">SO</text> </svg>'

In [4]: avinit.get_avatar_data_url('seocam')
Out[4]: b'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iNDYiIGhlaWdodD0iNDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOyAtbW96LWJvcmRlci1yYWRpdXM6IDBweDsgd2lkdGg6IDQ2cHg7IGhlaWdodDogNDZweDsgYm9yZGVyLXJhZGl1czogMHB4Ij4gPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeT0iNTAlIiB4PSI1MCUiIGR5PSIwLjM1ZW0iIHBvaW50ZXItZXZlbnRzPSJhdXRvIiBmaWxsPSIjZmZmZmZmIiBmb250LWZhbWlseT0iSGVsdmV0aWNhTmV1ZS1MaWdodCxIZWx2ZXRpY2EgTmV1ZSBMaWdodCxIZWx2ZXRpY2EgTmV1ZSxIZWx2ZXRpY2EsQXJpYWwsTHVjaWRhIEdyYW5kZSxzYW5zLXNlcmlmIiBzdHlsZT0iZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAyMHB4Ij5TPC90ZXh0PiA8L3N2Zz4='

To choose the avatar colors you can send a list with the hex color codes:

colors = ['#000', '#111', '#222']
avinit.get_svg_avatar('Hello Word', colors=colors)

There is also support to generate PNG avatars (if installed with support):

avinit.get_png_avatar('Hello Word', output_file='/tmp/test.png')

If you need to add radius to your avatars you can use the radius parameter:

avinit.get_svg_avatar('Hello Word', radius=15)
You can’t perform that action at this time.