Give your images a pixel art-like style and reduce the file size in the process with Halftone.
Halftone is a simple Libadwaita app for lossy image compression using quantization and dithering techniques.
Because it's fun! And it can also significantly reduce image size.
You can install Halftone in many ways, here are some listed:
1. Official Flatpak package:
2. Snap package / Alternative package distributions:
[!WARNING] Although some of the methods listed here may be maintained by the Halftone maintainers, these methods are not officially supported and issues related to packaging in them should be reported outside this project's bug tracker.
Or get in from your distribution's package manager:
3. Install from source:
If you don't find any other options appealing to you, then you can always compile code on your machine from source and install it that way. For more information, check out How to build? section.
Thanks for asking! Just for you, I've created this list of things you need to do if you want to contribute to Halftone:
git clone https://github.com/👁️you👁️/Halftone.git
git checkout -b new-thingies
git commit
git push origin new-thingies
This is the easiest way of building Halftone if you want to build it as a Flatpak package. Highly recommended, but probably not for everyone, as GNOME Builder and Flatpak can be quite resource hungry.
https://github.com/tfuxu/Halftone.git
as the URL.This is a little bit more advanced way of building Flatpak packages, but if you don't want or can't have GNOME Builder, then this method would be your best bet.
flatpak-builder
org.gnome.Sdk//47
org.gnome.Platform//47
Install required runtimes:
flatpak install org.gnome.Sdk//47 org.gnome.Platform//47
git clone https://github.com/tfuxu/Halftone.git
cd Halftone
flatpak-builder --install --user --force-clean repo/ build-aux/flatpak/io.github.tfuxu.Halftone.json
git clone https://github.com/tfuxu/Halftone.git
cd Halftone
flatpak-builder --install --system --force-clean repo/ build-aux/flatpak/io.github.tfuxu.Halftone.json
If you don't want to install Halftone as a Flatpak package, you can build it using Meson build system. Meson is used in majority of GTK apps and enforced on GNOME core apps, so learning how to use it would be pretty handy if you plan to contribute to other GTK projects.
The following packages are required to build Halftone:
python
python-gobject
blueprint-compiler
gtk4
libadwaita
imagemagick
meson
ninja-build
Required Python libraries:
pip install -r requirements-dev.txt
git clone https://github.com/tfuxu/Halftone.git
cd Halftone
meson setup builddir
meson configure builddir -Dprefix=/usr/local
sudo ninja -C builddir install
git clone https://github.com/tfuxu/Halftone.git
cd Halftone
meson setup builddir
meson configure builddir -Dprefix="$(pwd)/builddir"
ninja -C builddir install
ninja -C builddir run
[!NOTE] During testing and development, as a convenience, you can use the
local.sh
script to quickly rebuild local builds.
This repository is licensed under the terms of the GNU GPLv3 license. You can find a copy of the license in the COPYING file.
This project was started after I found out about Pixfect, a little Bash script that does exactly what Halftone does.
The original user interface design is based on Converter style, with itself is based on Upscaler design.
This README (mostly How to Build? section) is based on Gradience README.