Skip to main content

Fancy Galaxy Code creator and reader package.

Project description

Fancy Galaxy Code (FGC)

Fancy Galaxy Code (FGC) is an open source standard for fast and reliable data representation while maintaining a nice look and feel.
FGC strifes to serve as a prettier QR-Code straight from the future.
Contributions and integrations into projects are highly appreciated!

Links

PyPI Package
Online FGC Creator

Specification

Data processing

  • 4 Version bits
  • n Data + Hamming Code correction bits

Data representation

General structure

Center point is thick and has a fixed distance to the arc surrounding it, which equals the distance from layer to layer.
The dot in the ring around the center point represents the orientation (0 degrees).
For the exact distance calculations see the code.

Every ring can store up to degrees_per_bit - 1 bits, since the first bit of every layer is always a 0.
The degrees per bit can be looked up:

Layer 1: 20° per bit = 360° / 20° - 1 bits = 17 bits 
Layer 2: 15° per bit
Layer 3: 12° per bit
Layer 4: 10° per bit
... 9, 8, 8, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4 ...
After the last 4° layer (layer 19), every following layer (>= 20) has 3° per bit and can therefore store 360° / 3° -1 bits = 119 bits

Data representation

If the next bit is the same as this bit: Draw an arc
If the next bit is not the same as this bit: Draw a dot

Visual explanation

FGC Explanation

FGC-tools package usage

Install the package via:

pip install fgc-tools

Import the FGCCreator class and create an fgc:

from fgc_tools import FGCCreator

FGCCreator.create_fgc(
    color_inner="#009060", 
    color_outer="#006090",
    data="Example", 
    output_file="example.svg",
    color_background="#ffffff",
    write_data_as_text=True
)

Import the FGCReader and ReadResult class and read an fgc:

from fgc_tools import FGCReader
from fgc_tools import ReadResult

# Read image from file path
read_result:ReadResult = FGCReader.read_image(
    image_path="example.jpg"
)

# Read image from bytes
read_result:ReadResult = FGCReader.read_image(
    image_file=myPreviouslyDefinedByteArray 
)

Code execution

If you want to experiment with the code in this repository, install the requirements first:

pip install -r requirements.txt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fgc_tools-0.0.27.tar.gz (427.2 kB view details)

Uploaded Source

Built Distribution

fgc_tools-0.0.27-py3-none-any.whl (432.1 kB view details)

Uploaded Python 3

File details

Details for the file fgc_tools-0.0.27.tar.gz.

File metadata

  • Download URL: fgc_tools-0.0.27.tar.gz
  • Upload date:
  • Size: 427.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for fgc_tools-0.0.27.tar.gz
Algorithm Hash digest
SHA256 1f3eb6b0f140dcda817a6a6d6166650dec6e281f99b620a303cb5ab2cfb2c031
MD5 4eb8136838410e9b362890daab9d02a2
BLAKE2b-256 b927580d1507f29e2f84ddec86d73ee6cad46b1d40ea0b11f931defabfc62bf5

See more details on using hashes here.

File details

Details for the file fgc_tools-0.0.27-py3-none-any.whl.

File metadata

  • Download URL: fgc_tools-0.0.27-py3-none-any.whl
  • Upload date:
  • Size: 432.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for fgc_tools-0.0.27-py3-none-any.whl
Algorithm Hash digest
SHA256 fdea45ef1ccb0462454996560aaac63f864b9b7457d54e8f9f10d9f2eae10ad6
MD5 414c77b1569c92acd62747b62d480b74
BLAKE2b-256 f6d44e513d105848fef53e3fff0e1d03331bfb321ae9ee234e7fdeb9ec019c18

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page