Giter VIP home page Giter VIP logo

photocollage's Introduction

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

photocollage's People

Contributors

adrienverge avatar andreynovikov95 avatar antonioalonzi avatar dthadi3 avatar eugeneuvin avatar frankmilde avatar gutschy avatar hugovk avatar jwilk avatar lukacu avatar medrado avatar palob avatar penguinpee avatar spacy01 avatar tim-gromeyer avatar vistaus avatar xerus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

photocollage's Issues

blurry

i found that its kinda choppy when its scaled up

Error: GNU gettext msgfmt utility not found!

Hi!
I am using Anaconda (Python 3.5.4 |Anaconda custom (64-bit)|) on windows platform. While installing PhotoCollage, I am facing difficulties using pip install photocollage.
Has anybody faced similar issue? How to solve this problem?
Thank you.
error
error_2

Not centered images are not shown properly

If the image isnt centered, all the proposed outputs might show an empty non-useful view...
It would be nice if we are allowed to apply some changes manually to pics such as moving them within their frame to have the correct output

AppData file can't be used :(

Hey,

Thanks for creating an AppData file -- unfortunately the Fedora AppStream builder isn't using it because:

photocollage.appdata.xml license 'GPLv2+' invalid

It's really useful if you can use a SPDX ID content licence from the Debian approved list[1] -- if you have to use GPL for whever reason, you need use an actual SPDX identifier[2], e.g. "GPL-2.0+" -- this is fine for Fedora. Thanks!

[1] http://people.freedesktop.org/~hughsient/appdata/#metadata_license
[2] http://spdx.org/licenses/

Photocollage not working with Python 3.8

With the new 3.8 version of Python, Photocollage doesn't start.

Error message:

Traceback (most recent call last):
  File "/usr/bin/photocollage", line 21, in <module>
    from photocollage import gtkgui
ModuleNotFoundError: No module named 'photocollage'

Photo grid

Can an option be added just to have photos in a grid (like in the attached) without any cropping of the original photos?
large-photo-grid1

Request for Flatpak Support

Description:
As a user of PhotoCollage, I am excited about the potential of Flatpak for enhancing the distribution and availability of software on various Linux distributions. However, I have noticed that PhotoCollage is currently not available as a Flatpak package. I would like to kindly request the addition of Flatpak support to make it easier for users like me to install and use PhotoCollage on a wider range of Linux distributions.

Benefits of Flatpak Support:

  • Distribution Agnostic: Flatpak packages can run on various Linux distributions without compatibility issues, providing a consistent experience for users.
  • Up-to-Date Software: Flatpak allows users to access the latest versions of applications, ensuring they can take advantage of new features and bug fixes promptly.
  • Isolated Environment: Flatpak's sandboxing ensures that the application runs in a secure and isolated environment, enhancing system security and stability.
  • Easy Installation: Users can install Flatpak packages without worrying about package dependencies and library conflicts, simplifying the installation process.

Proposed Action:
I kindly request that the development team consider adding support for Flatpak packaging of PhotoCollage. This would involve creating a Flatpak manifest, configuring the necessary build and runtime dependencies, and providing the package through the Flathub repository. If needed, I am willing to assist with testing and providing feedback during the process.

Additional Information:

  • Flathub: Flathub is the central repository for distributing Flatpak applications. Adding PhotoCollage to Flathub would make it easily accessible to a wider audience.
  • Flatpak Documentation: The Flatpak documentation provides detailed information on how to package applications using Flatpak.

I appreciate your attention to this request and am looking forward to the possibility of enjoying PhotoCollage through the convenience and versatility of Flatpak. Please let me know if there's any additional information or assistance needed from my side to facilitate the process.

Thank you for your dedication to improving the accessibility and user experience of PhotoCollage.

Missing dependencies

Try to install using pip failed on my system. You probably need to add a dependency on DistUtilsExtra. (Solved using apt-get install python3-distutils-extra)

After installing it fails to start with another missing dependency (PIL). (Solved using apt-get install python3-pil).

# pip3 install photocollage
Downloading/unpacking photocollage
  Downloading photocollage-1.3.0.tar.gz (186kB): 186kB downloaded
  Running setup.py (path:/tmp/pip-build-j8cqyb84/photocollage/setup.py) egg_info for package photocollage
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip-build-j8cqyb84/photocollage/setup.py", line 6, in <module>
        from DistUtilsExtra.command import build_extra, build_i18n
    ImportError: No module named 'DistUtilsExtra'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/tmp/pip-build-j8cqyb84/photocollage/setup.py", line 6, in <module>

    from DistUtilsExtra.command import build_extra, build_i18n

ImportError: No module named 'DistUtilsExtra'

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-j8cqyb84/photocollage
$ photocollage 
Traceback (most recent call last):
  File "/usr/local/bin/photocollage", line 23, in <module>
    from photocollage import gtkgui
  File "/usr/local/lib/python3.4/dist-packages/photocollage/gtkgui.py", line 30, in <module>
    from photocollage import APP_NAME, artwork, collage, render
  File "/usr/local/lib/python3.4/dist-packages/photocollage/render.py", line 24, in <module>
    import PIL.Image
ImportError: No module named 'PIL'

Ability to specify dimensions of collage

Maybe I'm missing something, but as it appears I have no influence on the aspect ratio (and resolution, dpi) of the resulting collage. For creating wallpapers I need to set the dimensions to my screen resolution.

Add two text boxes that specify width and height of the resulting collage.

save poster with high definition

Hi
unfortunately the quality of the images decreases with every image added.
at the end the printout - even on photo paper - has a poor quality.

I found 3 variables
./photocollage/render.py:28:QUALITY_SKEL = 0
./photocollage/render.py:29:QUALITY_FAST = 1
./photocollage/render.py:30:QUALITY_BEST = 2

but it seems QUALITY_BEST is never used
sorry if my python knowledge is not sufficient to recognize if this is not the case.

photoCollage needs other libs to run under Kubuntu 15.04

I needed to install those libs
sudo apt-get install python3-cairo
sudo apt-get install python3-gi-cairo

then it woked - quite nice placing the images

is there a button to clear all images?
I would like to trigger the recalculation after delete of one picture myself.
What is the JPEG quality when saving?

Windows Installer

I'm not really familiar with python, but can PhotoCollage be compiled(?) as a binary for Windows.
Can it be installed on Windows?
Is there a way to achieve it?
Could you point me on the right direction to understand more over this subject.

Thanks

cannot import name GdkPixbuf, introspection typelib not found

~ photocollage
Traceback (most recent call last):
  File "/usr/local/bin/photocollage", line 21, in <module>
    from photocollage import gtkgui
  File "/usr/local/lib/python3.9/site-packages/photocollage/gtkgui.py", line 29, in <module>
    from photocollage import APP_NAME, artwork, collage, render
  File "/usr/local/lib/python3.9/site-packages/photocollage/artwork.py", line 21, in <module>
    from gi.repository import GdkPixbuf
  File "/usr/local/lib/python3.9/site-packages/gi/importer.py", line 131, in load_module
    raise ImportError('cannot import name %s, '
ImportError: cannot import name GdkPixbuf, introspection typelib not found

non-rectangular photo source material, consider transparency around cut-out photos

Hi!

Many thanks for this mighty tool 💯 Now I have the situation of wishing to create a collage of photos cut out from a photo album which are not rectangular (they were artistically contour cut in the 1920's). I would like to crop the scans and save them as either TIFF with alpha channel or transparent PNG. It would be superb if PhotoCollage could consider these cropped areas into the collage arrangement.

All my best,

Matthias

CLI Use case

I have a situation where i need to generate a Collage form a set of photos, it should be part of a larger application so it should generate this collage from CLI only, I don't need to tweak the result, just push my parameters to the scripts and get an image collage as a result.

can I do something like this with PhotoCollage, and if not what modifications you think could be done to the project to achieve this CLI interface? I'm thinking that instead of redoing the same thing in my application just enhance your project and invoke it from mine.

Cool program! I keep getting "broken data stream" error, though.

Hi! Thanks for this program, it looks really neat and seems to do what I want. I really appreciate your efforts.

Every time I try to make a collage, I get this error:

image

I am able to open the images in eog and display them in the browser, so I think they're good. But it'd be cool if there was an option (or by default) to simply ignore images that aren't working for photocollage.

Thanks again, hope you have a nice day.

Enhancement : swap two photos

Hello,

it would be great if we can swap two photos by clicking on it.

Photo 1 Photo 2
Photo 3 Photo 4

If click on photo 1 then on photo 4 :

Photo 4 Photo 2
Photo 3 Photo 1

Removing photos

It would be nice to have a way of removing photos from collage. For example Ctrl + Shift + mouse click on the photo.

Buttons in v1.3

My wife uses this program. She really likes it. Thanks.
In particular she really likes the vertical/horizontal arrow buttons that are present in version 1.3, but not in version 1.4. So currently we are stuck on version 1.3. Can you put these buttons back?

Saving a collage definition

Is it possible to save a photo collage definition so that one can later return and resume one's work? I would like to be able to load a previous photo collage, make changes to it, by for example, adding new photos, deleting some and changing the layout.

Filenames with umlauts cannot be imported

I noticed that I cannot drag and drop images from a directory containing an umlaut (Käsekuchen) into the program, it would tell me that the file does not exist and show the path in question in apparently different encoding, I guess latin1. This means that somewhere the filename gets treated with the wrong encoding. Renaming the directory to Kaesekuchen fixed it.

Program hangs when saving

I'm using PhotoCollage from commit 98f9b4f on Ubuntu 15.04. If a user goes to save an image and a file type isn't specified then the program hangs whilst trying to save.

Please add a way to set desired aspect ratio

I would like to be able to create European sized posters (A3, A4 etc).
It would be great to be able to set the aspect ratio about 1:1.414 for A4, for example so that the posters are the right shape for the destination printout.

Many thanks!

Installation on Ubuntu

I cant install PhotoCollage using PPA. (Ubuntu 15.04, no package found after update)

With manual installation i got this error on startup :

# strace  photocollage
execve("/usr/local/bin/photocollage", ["photocollage"], [/* 65 vars */]) = 0
brk(0)                                  = 0x8147000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7713000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=126154, ...}) = 0
mmap2(NULL, 126154, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb76f4000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\210\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1807496, ...}) = 0
mmap2(NULL, 1814236, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7539000
mmap2(0xb76ed000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b3000) = 0xb76ed000
mmap2(0xb76f2000, 7900, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb76f2000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7538000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7538940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb76ed000, 12288, PROT_READ)  = 0
mprotect(0x804e000, 4096, PROT_READ)    = 0
mprotect(0xb773a000, 4096, PROT_READ)   = 0
munmap(0xb76f4000, 126154)              = 0
brk(0)                                  = 0x8147000
brk(0x8168000)                          = 0x8168000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2940416, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7338000
mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x2cc000) = 0xb7712000
close(3)                                = 0
execve("/home/user/.rvm/gems/ruby-2.2.0/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/home/maruseraumax/.rvm/gems/ruby-2.2.0@global/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/home/maruseraumax/.rvm/rubies/ruby-2.2.0/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/usr/local/sbin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/usr/local/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/usr/sbin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/usr/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/sbin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/usr/games/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/usr/local/games/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/home/user/.rvm/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
execve("/home/user/.rvm/bin/python3\r", ["python3\r", "/usr/local/bin/photocollage"], [/* 65 vars */]) = -1 ENOENT (No such file or directory)
write(2, "/usr/bin/env: ", 14/usr/bin/env: )          = 14
)                = 8, 8python3
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7711000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2570
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7711000, 4096)                = 0
open("/usr/share/locale/fr_FR.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr_FR.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr_FR/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/fr/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr_FR.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr_FR.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr_FR/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/fr/LC_MESSAGES/libc.mo", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=154405, ...}) = 0
mmap2(NULL, 154405, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7312000
close(3)                                = 0
open("/usr/lib/i386-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=26256, ...}) = 0
mmap2(NULL, 26256, PROT_READ, MAP_SHARED, 3, 0) = 0xb770b000
close(3)                                = 0
write(2, ": Aucun fichier ou dossier de ce"..., 37: Aucun fichier ou dossier de ce type) = 37
write(2, "\n", 1
)                       = 1
close(1)                                = 0
close(2)                                = 0
exit_group(127)                         = ?
+++ exited with 127 +++

Packages libc6 and libc6-x32 already installed...

No module named 'cairo'

Hi there! Many thanks for great project.

Either pip3 and manual installation produce the same:

Traceback (most recent call last):
  File "/home/chichivica/anaconda3/bin/photocollage", line 21, in <module>
    from photocollage import gtkgui
  File "/home/chichivica/Programs/PhotoCollage/photocollage/gtkgui.py", line 26, in <module>
    import cairo
ModuleNotFoundError: No module named 'cairo'

I installed cairo, cairocffi,
but pycairo could not:

UnsatisfiableError: The following specifications were found to be in conflict:
  - pycairo -> python 2.7*
  - python 3.6*
Use "conda info <package>" to see the dependencies for each package.

May be I miss understand smth?

Application can't start (No module named 'PIL')

Hello!

I got this error when I try to start photocollage :

-------- Output error --------
Traceback (most recent call last):
File "./photocollage", line 21, in
from photocollagelib import gtkgui
File "/home/xxxxxxx/Programmes/PhotoCollage-master/photocollagelib/gtkgui.py", line 25, in
import PIL.Image
ImportError: No module named 'PIL'

-------- End of output error --------

I have this when I download the archive or when I install it manually.

Can the code realize batch processing of pictures in each subfolder and generate collage in pycharm? Why do I give an error?

At the beginning, I was prompted to make a mistake. I found no answer to this mistake in many places. I hope the author can help me.

from photocollage import photocollage
from PIL import Image

The following error occurred:
Traceback (most recent call last):
File "C:\Users\schubert\PycharmProjects\pythonProject1\33.py", line 1, in
from photocollage import photocollage
ImportError: cannot import name 'photocollage' from 'photocollage' (C:\Users\schubert\PycharmProjects\pythonProject1\venv\lib\site-packages\photocollage_init_.py)

I don't know what went wrong.

Does this project already use a linear partition algorithm or could it benefit from its ideas?

Make it possible to move pictures within their frame

The program crops images to make them fit their "window" within the collage. I want to be able to move the picture within this window. This lets me fix things like cut-off heads.

Maybe it is possible to allow zooming, too.

Feature Request: Zoom

I love PhotoCollage, and have used it many times now. One feature I wish to be implemented is a zoom of the canvas. With the window full screen on a modern high res display, the canvas remains the same size. This is ok when there is a low count of photos, but unusable with a higher count. Thank you!

Edit: Removing a photo enlarged the canvas to the window size.

File chooser dialogs remember the last visited directory

Nice and really useful software. This is a feature request from having worked a bit with it.

It would be nice, when the Add and Save file chooser dialogs would remember (separately) the last visited
dir instead of having to browse anew all the time.

Immediately exits on start without error.

I'm using the Miniforge Python distribution on an M1 Mac. All dependencies appear to be available. I made a minor change to artwork.py (see #82), adding gi.require_version('GdkPixbuf', '2.0'). I get the following:

$ python3 -m photocollage.gtkgui
$

It immediately exits with exit code 0 (EXIT_SUCCESS). No window appears.

Add image preview to "Add" file chooser dialog

Nice and really useful software. This is a feature request from having worked a bit with it:

ATM, my workflow is a bit cumbersome:
In shotwell group pictures into event. Export event into separate folder. Open folder in photocollage. Then thin images out to a selection that looks nice/fits.

The workflow would be smoother with an image preview in the Add file chooser. This allows the user to directly pick images from the Pictures folder and not having to use shotwell first.

Cannot choose width and height independently from each other

Thanks for this application. It is really good and useful! I just found one issue when using it.
Using from commit e2d61fc (Sun Nov 22).
Save poster dialog shows the Poster height field disabled, so I cannot freely choose the dimensions of the final image. Is it possible to choose width and height independently from each other?
Thanks!

Change paper size?

I don't see any way to set the paper size to values other than those in the drop down. I'm running 1.4.2 on Fedora 23, and I have no choices for Ledger (11"x17") and don't see how to add a new size. Other sizes would also be useful, e.g., "standard" poster size of 18"x24", to send out for printing.

Harmonize appearance of file chooser dialogs

Nice and really useful software. This is just some feedback:

Maybe there is a specific rational behind the current status. However, the Add and Save file chooser dialogs could be improved by having the same appearance.

ATM, Add always opens with Recent and has no search bar.
add

Save always opens in the home dir showing a search bar, but has no Recent.
save

Lack of logging calls

Throughout the code, no logging is present, meaning only Exception stacks will enable the developper to investigate what was the context in case of crash; nothing will print the images filenames considered, the user options, etc.

Proposal: add logging calls, in particular in case of Exception at highest level

Drag&Drop

More than an issue is a feature request:
would be nice if it work with Drag & Drop images from nautilus itself into the "poster area".

Thanks,
C

Deprecated Pillow methods used

If you use Pillow 3.0.0, which came out last month, you get the following stack trace:

Process RenderingProcess-12:
Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 254, in _bootstrap
self.run()
File "/usr/lib/python3.5/site-packages/photocollage/render.py", line 145, in run
self.wr_conn.send(self.fn(_self.fn_args, *_self.fn_kwargs))
File "/usr/lib/python3.5/site-packages/photocollage/render.py", line 288, in resize_photo
return img.size[0], img.size[1], img.tostring()
File "/usr/lib/python3.5/site-packages/PIL/Image.py", line 686, in tostring
"Please call tobytes() instead.")

Images don't render because of this. It works if you install 2.9.0

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.