This adds proper support for a lot of image formats including SVGs. It will be the basis for many features to come. The technical core is an asynchronous renderer that can arrange textures in smaller tiles which might be generated on demand. Closes #34, #40, #41, #49 Basis for fixing the following issues #7, #27, #36, #43, #68, #71
76 lines
3.9 KiB
Markdown
76 lines
3.9 KiB
Markdown
# Loupe
|
||
|
||
A simple image viewer application written with GTK4 and Rust.
|
||
|
||

|
||
|
||
## Installing
|
||
|
||
The latest version from the main branch is available from the build artifacts.
|
||
|
||
Download bundle for:
|
||
|
||
* [x86_64](https://gitlab.gnome.org/api/v4/projects/13923/jobs/artifacts/main/raw/org.gnome.Loupe.Devel.flatpak?job=flatpak) (Average desktop or laptop PC)
|
||
* [aarch64](https://gitlab.gnome.org/api/v4/projects/13923/jobs/artifacts/main/raw/org.gnome.Loupe.Devel.flatpak?job=flatpak@aarch64) (Average phone, tablet, or Apple Silicon devices)
|
||
|
||
Bundles will not be automatically updated after installation.
|
||
|
||
## Supported Formats
|
||
|
||
| Format | ICC | CICP | EXIF | XMP | Animation | Library |
|
||
|----------|-----|------|------|-----|-----------|-------------------------------|
|
||
| JPEG | ✔ | — | ✔ | ✘ | — | image-rs |
|
||
| PNG | ✔ | ✘ | ✔ | ✘ | ✘ | image-rs |
|
||
| GIF | ✘ * | — | — | ✘ | ✘ | image-rs |
|
||
| WEBP | — | — | ✔ | ✘ | ✘ | image-rs |
|
||
| AVIF | ✔ | ✔ | ✔ | ✘ | ✘ | libheif-rs + libheif (C++) |
|
||
| HEIC | ✔ | ✔ | ✔ | ✘ | ✘ | libheif-rs + libheif (C++) ** |
|
||
| TIFF | ✘ | — | ✔ | ✘ | — | image-rs |
|
||
| SVG | ✘ | — | — | ✘ * | — | librsvg |
|
||
| BMP | ✘ | — | — | — | — | image-rs |
|
||
| ICO | — | — | — | — | — | image-rs |
|
||
| PNM | — | — | — | — | — | image-rs |
|
||
| DDS | — | — | — | — | — | image-rs |
|
||
| TGA | — | — | — | — | — | image-rs |
|
||
| OpenEXR | — | — | — | — | — | image-rs |
|
||
| farbfeld | — | — | — | — | — | image-rs |
|
||
|
||
| Symbol | Meaning |
|
||
|--------|------------------------------------------------|
|
||
| * | Unclear if used in practice, needs research |
|
||
| ** | Split into plugin because of licensing issues |
|
||
| ✘ | Supported by format but not implemented yet |
|
||
| ? | Unclear if supported by format, needs research |
|
||
| ✔ | Supported |
|
||
|
||
## Building
|
||
|
||
### GNOME Builder
|
||
|
||
GNOME Builder is the environment used for developing this application. It can use Flatpak manifests to create a consistent building and running environment cross-distro. Thus, it is highly
|
||
recommended you use it.
|
||
|
||
1. Download [GNOME Builder](https://flathub.org/apps/details/org.gnome.Builder).
|
||
2. In Builder, click the "Clone Repository" button at the bottom, using `git@gitlab.gnome.org/Incubator/loupe.git`
|
||
or `https://gitlab.gnome.org/Incubator/loupe.git` as the URL.
|
||
3. Click the build button at the top once the project is loaded.
|
||
|
||
|
||
## Installation
|
||
|
||
Depending on how you want it installed instructions can differ. If you
|
||
used GNOME Builder to build it, clicking the bar at the top window will
|
||
open a submenu with "Export Bundle". This will create a flatpak bundle,
|
||
which can be installed on any system that supports flatpak.
|
||
|
||
**In order for the Loupe flatpak to be able to read the directory images are installed in, you must install a bundle.**
|
||
Once you have a bundle installed, development builds will work properly.
|
||
|
||
## Contributing
|
||
|
||
- [Code Documentation](https://incubator.pages.gitlab.gnome.org/loupe/doc/loupe/)
|
||
|
||
### Conduct
|
||
|
||
Loupe operates under the GNOME Code Of Conduct. See the full
|
||
text of the Code Of Conduct [here](CODE_OF_CONDUCT.md).
|