Code Monkey home page Code Monkey logo

pagan's Introduction

pagan

Welcome to the Python avatar generator for absolute nerds.

Current version: 0.4.3

View changes here.

Remember those good old days when your own imagination was a big part of the computer gaming experience? All the limitations of the hardware forced you to fill the void left by poorly pixelated images by yourself. Well, pagan tries to give back some of those nostalgic feelings by providing identicons in an oldschool look that are inspired from retro roleplaying adventure games.

Each string input will be hashed and a unique avatar image is generated. The purpose of pagan is to use it for generating a user image in any web application. It is is meant to replace default user images when creating new accounts or to enhance comment sections, e.g. visualizing the author's IP address or username.

The software is currently under development and features the following functions:

  • Process a given string to generate identicons with unique colors and gear.
  • The hash function can be chosen from the ones included in Python's hashlib.
  • Create the avatar image based on a given resolution.
  • Pagan will map all virtual 16x16 pixels to the real image size.
  • Expand pagan by adding new weapons or gear.
  • Enjoy the nostalgia!

Example avatars hashed with SHA512:

Input Avatar
pagan pagan
python python
avatar avatar
github github
retro retro
piece of cake piece of cake
hash me if you can hash me if you can

Installation:

Clone this repository:

>> git clone https://github.com/daboth/pagan.git

and install manually:

>> python setup.py install

or install with pip:

>> pip install pagan

Python usage example:

# Import the pagan module.
import pagan

# Acquire an arbitrary string.
inpt = 'pagan'

# Use pagan to generate the avatar object based on that input.
# Optional: You can choose which hash function should be used.
# The functions are available as constants.
# Default: MD5.
img = pagan.Avatar(inpt, pagan.SHA512)

# Open the avatar image in an
# external image viewer.
img.show()

# Set an output path and a file name.
# You don't need to specify a file ending.
# Choose a path depending on your OS.
outpath = 'output/'
filename = inpt

# Saves the avatar image as a .png file
# by omitting the path and name. The
# file endings will be generated automatically.
img.save(outpath, filename)

# You can change the avatar input and
# hash function anytime.
img.change('new input', pagan.SHA256)

Command Line Interface

With the pagan command line interface you can generate avatars without writing python scripts.

>> pagan [-h] [--show] [--output OUTPUT] [--hash HASH] input [input ...]

Simply typing:

>> pagan hello

will generate an avatar from the string 'hello' and save it in your current working directory. For more information, use the help parameter.

>> pagan -h

Webserver

Pagan can be run in a simple demo webserver application. To access the pagan demo, you need to run the script from the webserver directory. Beware: This is a demo application and it will fill your temp directory with pagan generated image files. Do not run in production.

>> cd /tools/webserver/
>> python webserver.py

The webserver will serve on your localhost at port 8080. Open this adress in your browser window:

http://127.0.0.1:8080/

Supported Hashes

Hash Constant
md5 pagan.MD5
sha1 pagan.SHA1
sha224 pagan.SHA224
sha256 pagan.SHA256
sha384 pagan.SHA384
sha512 pagan.SHA512

Testing

To run the pagan tests, you need to install additional python modules. You can choose between pytest and tox. Configure the tox.ini to test different python versions.

Using py.test

>> pip install pytest
>> pytest

Using tox

>> pip install tox
>> tox

pagan's People

Contributors

daboth avatar myungseokang avatar rohitjha avatar xnor avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.