Git Product home page Git Product logo

avvie's Introduction

🌌

Hi there friend. I hope you're having a good evening.

Mmm whats what? Software? I might have some around here somewhere.

avvie's People

Contributors

altizo avatar bertob avatar jvlianodorneles avatar luni3359 avatar rafaelmardojai avatar rednatnas avatar rene-coty avatar rgronberg avatar rskys avatar taiko2k avatar theevilskeleton avatar twlvnn avatar vistaus avatar yakushabb 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

avvie's Issues

Build and install instructions

We should add instructions on how to build, run and install the project. Either to README.md file, or a github wiki page.

Custom dimensions (ratio and pixel resolution)

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.

Switch to GTK for notifications rather than libnotify

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!

About dialog isn’t tied to the main window

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

Usefulness of run.sh is quite questionable.
It should be replaced with
#!/usr/bin/env python
sheabang in main.py

Feature requests, Bugs and Observations

Feature Request:

Sorted in personal preference priority order:

  • More presets: 4:3 and 3:4 should be presets (no custom), I use it a lot for portraits (vertical and horizontal) and it's slow to change Custom for every image.
  • Keyboard shortcuts for quick change aspect ratio presets without mouse (maybe like: 1 2 3 4 5 6).
  • Show actual filename in UI.
  • Delete button & shortcut, to not remove pictures with another image viewer in a previous step.
  • Keyboard shortcuts in README.md (github).
  • Change selection size not from corners (similar to Gimp maybe?).
  • Help page or URL with shortcuts.
  • Webp support (lossless and lossy), i've using this a lot because size reduction and a lot webpages use it.

Bugs:

  • Selection rectangle grow beyond image limits when changing aspect ratios, maybe when is larger should shrink to allowed limits.
  • Problems with aspect ratios 16:10 16:9 21:9 and Custom:
    • Weird snap steps when changing size.
    • While changing corner, also change opposing corner with all corners (except right-bottom one). Also [Shift] drag is weird with this.
  • Right-bottom corner thumbnails should stay in bottom, right now only is like that, with 1:1 aspec ratio (square).
  • Size in top-left thumbnail corner should be thumbnail size, the cropped size is already in selection rectangle.
  • When using meson says:
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.

  • After installing with meson+ninja, when trying to remove Avvie folder says (for each language):
    rm: cannot remove '/home/kuro/GIT/Avvie/builddir/po/nl/LC_MESSAGES/avvie.mo': Permission denied
    I know that I can use: sudo rm -rf Avvie/, but maybe avvie.mo shouldn't has root permission?

Questions and observations:

  • It's possible to sharpen jpg without recompression?
  • There are some size restrictions with jpg lossless crop? (iMCU [8 or 16] boundary) maybe when it's JPG and lossless mode on, should snap to 8 or 16 pixels?
  • Why says EXIF in top-right corner of the biggest thumbnail?
  • In README.md it wasn't clear to me that Downscale and bellow options are resize and aren't JPG lossless, maybe it's me, English it's not my native language.

PD: I'm testing this once a week when doing Second Life Photography for a DJ friend.

[Feature Request] Changing the size of preview

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] Folder mode, Flatpak alternative, Lossless JPG crop

Feature Request:

  • Rule of Thirds grid: very useful to compose/crop photography or images, with some help.
  • Folder mode: very faster and useful when reviewing a lot of screenshots or pictures to send. The idea it's to have a next button that load next file to crop.
  • Lossless JPG crop/rotation/else: very useful, maybe using jpegtran or similar.
  • Alternative to Flatpak: It was going to download a lot, finally I did installed from AUR, but I think it's better to do just, maybe not from pypi.org but pointing to github:
    • pip install
    • pypy3 -mpip install
    • someday it's going to be in the main repos

Very nice program and I really like it, hope you find this ideas helpful and not time consuming.

Cannot load any greyscale images

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.
failing-image

Saving to downloads directory is not intuitive

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!

Use a build system?

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.

Better integration in GNOME infrastructure

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!

Version tags and releases

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 😁!

Minimum window size

I'm currently able to reduce the window size at will regardless of whatever file I've opened. The only limitation is the topbar content (horizontally).
Screenshot from 2022-05-05 21-25-34

Maybe there should be a limit to the window size based on the image opened and/or previews?

Detect "spot of interest"/interesting image part

Currently

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.

Improvement

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. 😜

Alternatives

Could we at leaast/maybe center the cropping? Though I'm not sure what kind of cropping happens more often. πŸ™‚

Relevant notes

E.g. Twitter tries to do this in their image previews, mostly just focusing on faces.

Preferences window design idea

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.
Avvie mockup v1
So I thought we could integrate the Add preview option in the Appearance category, and to me it looks very good.
Avvie mockup part 1
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!".
Avvie mockup part 2

[Request] Rotate images

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.

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.