Skip to main content

faker-graphics

CI Version Python License

Provider for Faker to generate placeholder images with cairo.

  • Includes a random color generator forked from the Python port of randomColor.js
  • Provides a simple CLI to generate image files or just colors in the terminal
  • Generated images show size, aspect ratio and a simple geometry

Installation

$ pip install faker-graphics

Usage with Faker and/or Factory-Boy

Register the provider with Faker

The faker-graphics provider will reuse Faker's random instance.

from faker import Faker
from faker_graphics import Provider

fake = Faker()
fake.add_provider(Provider)

Alternatively register the provider with Faker via Factory-Boy

import factory
from faker_graphics import Provider

factory.Faker.add_provider(Provider)

Using the "placeholder_image" fake

After registration the "placeholder_image" fake is available. It returns a PNG image as bytes.

from faker import Faker

fake = Faker()
data = fake.placeholder_image()
assert data[:6] == b'\x89PNG\r\n'

placeholder_image() accepts the following optional arguments:

  • width: image size in pixels, default: 256
  • height: image size in pixels, default: 256
  • hue: influence the color randomizer, e.g. a hue name like "green", "blue", "pink" (see fgr colormap command below) or a number in a 360° spectrum, default: None results in random color
  • luminosity: "random", "bright", "dark", "light", default: Luminosity.light

Usage with Factory-Boy/Django

import factory

class ModelWithImageFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = 'models.ModelWithImage'

    image = factory.django.FileField(
        filename='mock_image.png',
        data=factory.Faker(
            'placeholder_image',
            width=640,
            height=320,
            hue='green',
            luminosity='dark',
        ),
    )

CLI Usage

The CLI provides sub commands for various tasks.

$ fgr --help
Usage: fgr [OPTIONS] COMMAND [ARGS]...

  faker_graphics commandline interface.

Options:
  -v, --verbose  Increase verbosity.
  --help         Show this message and exit.

Commands:
  color     Show random colors in your terminal.
  colormap  Show colormap used by random color generator as JSON.
  image     Generate a placeholder image with random hue.

All subcommands provide their own --help messages!

Generate an image via CLI

Create image files or write to stdout using - as OUTPUT.

$ fgr image sample.png green --size 640 320 --luminosity dark

Example Image

Show colormap

The colormap command returns the whole colormap as JSON; you could use jq to extract the known hue names.

$ fgr colormap | jq "keys_unsorted"
[
  "monochrome",
  "grey",
  "red",
  "orange",
  "yellow",
  "green",
  "cyan",
  "blue",
  "purple",
  "magenta",
  "pink"
]

Generate random colors

Generate one or multiple random colors. Colors are returned as HSV/B values and shown as background color if your terminal supports it.

$ fgr color pink --count 3 --luminosity light --sorted
 hsv(328, 30, 98) rgb(249, 174, 214) #f9aed6
 hsv(334, 55, 97) rgb(247, 111, 170) #f76faa
 hsv(344, 26, 100) rgb(255, 188, 206) #ffbcce

Release files for faker-graphics 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for faker-graphics 0.3.0
File Size Uploaded
faker_graphics-0.3.0.tar.gz 12.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for faker-graphics 0.3.0
File Interpreter ABI Platform
faker_graphics-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.1 kB

Release files / faker_graphics-0.3.0.tar.gz

Download URL faker_graphics-0.3.0.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e966ffe373ee81f98d137de96050eedc957f5316e226d19edc4787c05e2dec4e
BLAKE2b-256 checksum
How to use checksums
946d7a8f74d2ce8262d60e4abe6114cadefbd4cdce0b82aae53c6bbf6d4783b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / faker_graphics-0.3.0-py3-none-any.whl

Download URL faker_graphics-0.3.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba33ca38654739ec51558fae3a20901fa149e9fc110a31147de2b02e84450f4e
BLAKE2b-256 checksum
How to use checksums
7f2638b9310ec3abe76475d72ff758cf3070a4c9e5b62e3d574fd08bb74c75ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page