Hi there friend. I hope you're having a good evening.
Mmm whats what? Software? I might have some around here somewhere.
A GTK app for quick image cropping :flower_playing_cards:
License: GNU General Public License v3.0
We should add instructions on how to build, run and install the project. Either to README.md file, or a github wiki page.
Would you be interested in a new icon following the GNOME icon guidelines? If so, I'd be happy to help with that.
I have the dark theme set on my machine. It works with all apps but this one:
![Dark theme not working](https://user-images.githubusercontent.com/9282837/94352339-d1d48580-00a2-11eb-8b78-44e6a1937c5e.pn g)
I checked the settings and there doesn't seem to be a way to switch to a dark theme. The screenshot in the README is dark, so I'm not sure why this doesn't work.
I would suggest a custom button be added where the user has the option to either type a custom ratio (4:3, 20:9, etc ) or a size in pixels (1,546 x 423 pixels, etc)
Case for custom ratios: It is currently hard to crop to 20:9, 9:16, 4:3 and other ratios that are not the ones available in the app.
Case for custom pixel resolution: Useful when users need image crops that have weird ratios, such as banners for websites.
You can use GtkApplication to handle opening files and notifications
This means you don't need libnotify (which is kinda deprecated now) and don't have to do manual argv
parsing
Neat little app you've got here!
I noticed the about dialog is a completely independent window, while on gnome apps the dialog and the main windows are tied each other (the same way the preferences dialog currently is in Avvie). I think it would be great if Avvie behaved the same way
Usefulness of run.sh
is quite questionable.
It should be replaced with
#!/usr/bin/env python
sheabang in main.py
Sorted in personal preference priority order:
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
Maybe change README.md to
meson setup builddir --prefix=/usr/local
to not get the warning in 1st place.
rm: cannot remove '/home/kuro/GIT/Avvie/builddir/po/nl/LC_MESSAGES/avvie.mo': Permission denied
sudo rm -rf Avvie/
, but maybe avvie.mo
shouldn't has root permission?PD: I'm testing this once a week when doing Second Life Photography for a DJ friend.
First, thank you for this program!
It would be really great to be able to change the size of preview.
For example by dragging a corner of the preview, or/and using custom input.
Also, being able to see multiple previews of different sizes side by size (i.e. 64x64, 128x128, 360x360) can help creating icons or avatars for sites that re-use one image in UI elements of different sizes.
Feature Request:
next
button that load next file to crop.jpegtran
or similar.Very nice program and I really like it, hope you find this ideas helpful and not time consuming.
The stated error occurs when opening any grayscale image. Unlike what you might suspect, the image does not have to have an alpha channel to cause this error; flattening it in GIMP makes no difference.
The log below is specifically the full error that occurs when attempting to open such a file on the commandline, ie avvie failing-image.png
It is not clear to me why the second and third tracebacks both occur (they are identical to one another)
Traceback (most recent call last):
File "/usr/share/avvie/avvie/main.py", line 151, in do_snapshot
picture.load(self.avvie.to_load, (w, h))
File "/usr/share/avvie/avvie/main.py", line 617, in load
self.reload(keep_rect=self.rec_w > 0)
File "/usr/share/avvie/avvie/main.py", line 554, in reload
by = im.tobytes("raw", "RGBA")
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/PIL/Image.py", line 760, in tobytes
e = _getencoder(self.mode, encoder_name, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/PIL/Image.py", line 437, in _getencoder
return encoder(mode, *args + extra)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: No packer found from LA to RGBA
Traceback (most recent call last):
File "/usr/share/avvie/avvie/main.py", line 1667, in toggle_menu_setting2
picture.gen_thumbnails(hq=True)
File "/usr/share/avvie/avvie/main.py", line 508, in gen_thumbnails
by = cr.tobytes("raw", "RGBA")
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/PIL/Image.py", line 760, in tobytes
e = _getencoder(self.mode, encoder_name, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/PIL/Image.py", line 437, in _getencoder
return encoder(mode, *args + extra)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: No packer found from LA to RGBA
Traceback (most recent call last):
File "/usr/share/avvie/avvie/main.py", line 1667, in toggle_menu_setting2
picture.gen_thumbnails(hq=True)
File "/usr/share/avvie/avvie/main.py", line 508, in gen_thumbnails
by = cr.tobytes("raw", "RGBA")
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/PIL/Image.py", line 760, in tobytes
e = _getencoder(self.mode, encoder_name, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/PIL/Image.py", line 437, in _getencoder
return encoder(mode, *args + extra)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: No packer found from LA to RGBA
The overall result is that any grayscale image simply cannot be cropped in Avvie without first converting it to RGB(A).
Avvie v 2.2 (installed via AUR package 'avvie')
Python 3.11
Pillow 9.5.0
Example failing image: Attached.
Since all dev have a life i let you know that gnome 44 runtime is out on flathub π
When I edit file I just want to save it, I mean replace. There is unwritten pattern in software which I see around (Paint, GIMP, Word, LibreOffice, gedit, Notepad, etc.)βyou can save (replace current file) or save as (create new file and do not replace original one). Your app recommends saving copy of the file to downloads which IMHO is not intuitive. Also, there is no way to just save file (replace original one). It seems to me gedit uses better approach β there is save (replace current file) button in the headerbar and save as command in application menu. Please consider implementing something like in gedit β it's much more intuitive I think.
Thank you for good app for which I was looking for!
I think it makes sense here to use a proper build system like Meson which could help making the app translatable too.
I can send a PR to do this if you want.
Hello and thanks a lot for all your work on Avvie :)
Have you considered moving to GNOME's Gitlab?
It would deepen the integration in the GNOME ecosystem, notably for the translators. Getting your project in GNOME's Gitlab and under the World umbrella would allow it to be integrated automatically in GNOME's translators tool (called Damned Lies).
It's worth noting Gitlab has a tool to import existing GitHub projects.
Thanks, and keep up the good work!
Currently there is only one version tag and it's for 1.0-beta1
. Because of this distribution package maintainers need to track down on which commit there was a version change and use that commit for building a package. It would be much easier for package maintainers to update packages if there were git tags for each version marking the commit that should be used.
Another useful thing would be to create releases for those tags as you already did so a tar.gz archive can be used for fetching source code instead of the entire repo.
Thanks for a great app π!
The GNOME 44 runtime is no longer supported as of March 20, 2024
I see the master
branch has been updated to 45.
Please make a new release.
At startup/file loading you always show a 545x545 (why this size BTW? How did you came up with that not even number β 512 would be the nearest round number π ) rectangle at the top left.
IMHO you could try to use some image processing to detect a "sweet spot" or however that may be called of an image, which is interesting and could be the thing the user wants to crop.
After all, this is supposed to be easier than GIMP. π
If you want, use some AI or whatever fun thing you wanna play with for that. π
Could we at leaast/maybe center the cropping? Though I'm not sure what kind of cropping happens more often. π
E.g. Twitter tries to do this in their image previews, mostly just focusing on faces.
I would like the app to be able to retain metadata, in particular all the EXIF data.
I don't like how we add previews atm. Of course the current ux does its job but I don't like the way it looks, the entry and the button are both on the left and there is a lot of free space on the right. So my first thought was to move the Add button to the right. It stops looking out of place, however it's not the best imo.
So I thought we could integrate the Add preview option in the Appearance category, and to me it looks very good.
Once the user presses the "+" button, a toast indicates that the preview was added and the button becomes green. Also, even before pressing it, the button is already green if the size selected is already in the main window. Pressing the green button either does nothing or shows a toast indicating that that size is already in the main window. The toast could also show the size that was added, e.g. "64x64 preview added!".
When cropping pictures for avatars, you might want to rotate the image so the final crop is upright. As a suggestion since Ctrl
and Shift
already have actions assigned to them, maybe Alt-Click
would be useful in rotating the original image on the canvas.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.