Skip to main content

An Open Source Python library for creating photomosaics

Project description

PytoMosaic

PytoMosaic is a Python library for creating photomosaics from images using a set of source images. It supports common image formats and provides a simple API with optional verbose progress output. It also allows reusing preloaded tiles for faster mosaic generation across multiple images.


Features

  • Create photomosaics from images
  • Supports .jpg, .jpeg, .png, .gif, .bmp, .tiff, .tif formats
  • Optional verbose mode with progress bars using tqdm
  • Reuse preloaded tiles with TileManager for multiple mosaics
  • Easy-to-use Python API
  • Compatible with Python 3.10+
  • Ability to save files
  • Image downloader for fast downloads

Installation

Install PytoMosaic from PyPI:

pip install pytomosaic

Dependencies:

  • numpy
  • Pillow
  • tqdm

These will be installed automatically.


Usage

Basic usage

from pytomosaic import createMosaic

imgPath = "target.jpg"
sourceImages = "source_folder"
cropSize = 50  # Size of mosaic parts in px

# Generate mosaic with verbose progress
mosaic = createMosaic(imgPath, sourceImages, cropSize, verbose=True, savePath="example.jpg")
mosaic.show()

Reusing preloaded tiles for multiple images

from pytomosaic import createMosaic
from pytomosaic.tileManager import TileManager

# Preload tiles once
tiles = TileManager(cropSize=50, sourceImagesDir="source_folder", verbose=True)

# Generate multiple mosaics using the same tiles
mosaic1 = createMosaic("photo1.jpg", tiles)
mosaic2 = createMosaic("photo2.jpg", tiles)

Set verbose=False or leave empty to disable prints and progress bars.

Downloading images from Pixabay

from pytomosaic import downloadImages

key = "YOUR_API_KEY" # Get from Pixabay
amount = 200 # 200 Maximum due to Pixabay restriction
query = "Your Query" # What you want the pictures to be of
pathToDownloadTo = "path/to/download/to"

downloadImages(key, amount, query, pathToDownloadTo, verbose=True)

Examples

Example Mosaic 1

Note: These files are stored in the GitHub repo for demonstration purposes. Users installing PytoMosaic via PyPI do not automatically download these images.


Supported Image Extensions

VALID_EXTENSIONS = {
    ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".tif"
}

Files with unsupported extensions are skipped and optionally warned about in verbose mode.


License

PytoMosaic is licensed under the GNU GPL v3. See the LICENSE file for details.

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

pytomosaic-0.1.12.post1.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytomosaic-0.1.12.post1-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file pytomosaic-0.1.12.post1.tar.gz.

File metadata

  • Download URL: pytomosaic-0.1.12.post1.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pytomosaic-0.1.12.post1.tar.gz
Algorithm Hash digest
SHA256 354219ecb6c38deee7a83aa420a56dc298e6e3db6f64b9c43dba188d883eeda9
MD5 dcc3cf2abfa79f433a496503b2c15d67
BLAKE2b-256 1005cf78b47d396e1f14b415aa82585fff5390f8fa48f6f305e71ee6e39b18cf

See more details on using hashes here.

File details

Details for the file pytomosaic-0.1.12.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for pytomosaic-0.1.12.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 430b996b4bada76ef1bc8fb2e547ebc05397a00ed70d7c2130c9036fd5906152
MD5 9ea9851e95d4bd1fc12fed8cc1ea3b06
BLAKE2b-256 02e539569d7c1ecf1fe876f7a7c6a2cc3825d0ec8878a7642e8dcf1b85a2b2dd

See more details on using hashes here.

Supported by

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