• Stars
    star
    374
  • Rank 114,346 (Top 3 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created about 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Graphical tool to make photo collage posters

PhotoCollage

CI tests status

Graphical tool to make photo collage posters

PhotoCollage allows you to create photo collage posters. It assembles the input photographs it is given to generate a big poster. Photos are automatically arranged to fill the whole poster, then you can change the final layout, dimensions, border or swap photos in the generated grid. Eventually the final poster image can be saved in any size.

The algorithm generates random layouts that place photos while taking advantage of all free space. It tries to fill all space while keeping each photo as large as possible.

PhotoCollage does more or less the same as many commercial websites do, but for free and with open-source code.

screenshot

It provides a library to create photo layouts and posters, and a GTK graphical user interface. PhotoCollage is written in Python (compatible with versions 2 and 3) and requires the Python Imaging Library (PIL).

Features:

  • generate random new layouts until one suits the user
  • choose border color and width
  • possible to swap photos in the generated grid
  • save high-resolution image
  • works even with a large number of photos (> 100)
  • integrates into the GNOME environment
  • available in English, French, German, Czech, Italian, Bulgarian, Dutch, Russian, Spanish and Ukrainian

Installation

  • Fedora 19+:

    sudo dnf install photocollage
  • Debian 9+ / Ubuntu 16.10+:

    sudo apt-get install photocollage
  • Using pip, the Python package manager:

    sudo pip3 install photocollage

Usage

After install a launcher for PhotoCollage will appear in your desktop menu.

If it doesn't, just run the command:

photocollage

Hacking

  • If you changed the source and want to test your modifications, run:

    PYTHONPATH=. bin/photocollage

    or:

    python3 -c 'from photocollage import gtkgui; gtkgui.main()'
  • If you need to build a package from source and install it:

    # Install dependencies
    sudo dnf install python3-pillow python3-gobject
    sudo apt-get install python3-pil python3-gi
    sudo pacman -S python-pillow python-gobject
    
    # Install PhotoCollage
    python3 setup.py sdist
    pip3 install --user --upgrade dist/photocollage-*.tar.gz
  • If you wish to contribute, please lint your code and pass tests:

    flake8 .
    python3 -m unittest tests/test_*.py

More Repositories

1

yamllint

A linter for YAML files.
Python
2,847
star
2

openfortivpn

Client for PPP+TLS VPN tunnel services
Perl
2,605
star
3

localstripe

A fake but stateful Stripe server that you can run locally, for testing purposes.
Python
192
star
4

familytreemaker

Generates a family tree graph from a simple text file
Python
179
star
5

kijijiapi

Robot to post ads on Kijiji
Python
65
star
6

gnome-magic-window

Bind a key to a specific program in Gnome Shell.
JavaScript
26
star
7

coucharchive

Create and restore backups of a whole CouchDB server, with simple tar.gz files
Python
14
star
8

copr-couchdb

Unofficial CouchDB 3 RPM packages for Fedora and EPEL
Shell
10
star
9

arm-analyser

ARM binaries analyser
C
7
star
10

copr-some-nice-fonts

Some nice fonts including Arial, Courier New, Helvetica, etc. for Fedora and CentOS
6
star
11

vim-python-logging

Vim plugin to color logs generated by python-logging
Vim Script
4
star
12

keyboard-stickers

Localize your keyboard!
Python
4
star
13

rhythmbox_playlist_to_m3u

Converts playlists stored by Rhythmbox to M3U files
Python
3
star
14

posix-read

Do POSIX read on files and sockets with Node.js
C++
3
star
15

dotfiles

Shell
3
star
16

libcoresightomap4430

Use STM and ETB hardware tracing modules on OMAP4430 SoC
C
2
star
17

mousemode

C
2
star
18

copr-oauth2_proxy

Fedora & CentOS packages for oauth2_proxy (previously Google Auth Proxy)
1
star
19

context_unnester

Fixes Python source code that use contextlib.nested.
Python
1
star
20

copr-python37

Unofficial Python 3.7 packages for CentOS 7
1
star
21

textree

Jade-like syntax processor that allows easy writing of HTML or XML files with auto-templating and Javascript-based scripting features
JavaScript
1
star
22

find-duplicate-images

Search similar images in a list of files or directories
Python
1
star
23

nest-css

Script to nest all rules of a CSS document inside an arbitrary selector
Python
1
star