Eroica / Paletti
Labels
Projects that are alternatives of or similar to Paletti
= Paletti :imagesdir: docs/images
Paletti is a color palette generator. It segments (quantizes) the image into a desired amount of key colors. This can help creating a color palette that closely matches an image.
image::Paletti.gif[Screenshot of using Paletti]
You can increase/decrease the amount of colors by scrolling up/down or using the slider (the size is currently restricted to 3 to 32 colors). The switch converts the image to grayscale.
Click on a color in the palette to copy its Hex code into the clipboard. You can also export the simplified version or a screenshot of the color palette to use elsewhere. <<Shortcuts,Look at the list of shortcuts below.>>
You can download a version for Windows, an ELF binary (AppImage), and a pre-release for Android from the https://github.com/Eroica/Paletti/releases[Releases]. See also: https://docs.appimage.org/user-guide/faq.html[What is an AppImage?]
<<Development,Read more about each version below.>>
Paletti's website is https://paletti.app. While I probably mostly use Paletti for myself, I develop it publicly in the hope that it is helpful for other people as well.
Nowadays, I mostly work as a 2D/3D artist on Windows, but I have also been using GNU/Linux in the past, so this is why I like to see Paletti on these two systems. Recently, I started developing an Android version as well.
You are welcome to raise bugs and feature requests here.
== Shortcuts
.Shortcuts |=== |Action |JavaFX |GTK |Android
|Open an image
|Ctrl+O
|Ctrl+O
|
|Export current image
|Ctrl+S
|Ctrl+S
|
|Copy current image into clipboard
|Ctrl+C
|Ctrl+C
|
|Export current color palette
|Ctrl+E
|Ctrl+E
|
|Increase/decrease color palette size |Mouse wheel up/down |Mouse wheel up/down |
|Toggle between black/white and colored segmentation
|x
|x
|
|Open Shortcuts window
|β
|Ctrl+?
+
Ctrl+F1
|
|===
== Development
There are currently three distinct versions of Paletti:
- A version written in Kotlin and JavaFX. This is targeted to run on Windows.
- A version written in Vala and GTK. This gets packaged into an AppImage to be run on GNU/Linux.
- An Android version (written in Kotlin).
I try to develop each version in tandem, i.e. keeping the same version number, and adding the same features.
Paletti's current version is 2.0.
.... PALETTI ββββandroid ; Android version (placeholder) ββββdocs ; Website ββββgtk ; GTK version written in Vala ββββjavafx ; JavaFX version written in Kotlin ....
=== Windows
Paletti's Windows version is written in Kotlin with JavaFX. It is themed to look like a modern UWP application.
The project is built with Gradle.
Running Paletti requires Java, but jpackage
bundles the necessary JRE, so nothing else is needed to run Paletti.
Being written in JavaFX, this version should theoretically run on GNU/Linux and macOS as well. However, I haven't tested this and don't intend to work on this. It is written for Windows; for GNU/Linux, please use the GTK version described below.
image::PalettiWindows-2.0.png[Screenshot of Paletti's JavaFX version]
=== ELF binary (AppImage)
This version is written in Vala using the Meson build system.
It should fit well into desktop environments using GTK, e.g. GNOME.
Next to Vala and GTK, you need Leptonica which you can probably install using your distribution's package manager, e.g. leptonica-devel
.
The library is abbreviated as lept
.
Create a build
directory if it doesn't exist yet, then run meson build
.
Inside build/
, you can then run ninja
.
The AppImage is generated by a simple Makefile inside dist/
.
image::Paletti-2.0.png[Screenshot of Paletti's GTK version]
=== Android
The Android version is currently in early development. You can download a beta version from the https://github.com/Eroica/Paletti/releases[Releases].
image::PalettiAndroid-beta.png[Screenshot of Paletti's Android version]
== License
Please see the LICENSE
file in this repository.
Paletti uses Leptonica for processing images. Leptonica's license:
.... /====================================================================
- Copyright (C) 2001 Leptonica. All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- Redistributions of source code must retain the above copyright
-
notice, this list of conditions and the following disclaimer.
-
- Redistributions in binary form must reproduce the above
-
copyright notice, this list of conditions and the following
-
disclaimer in the documentation and/or other materials
-
provided with the distribution.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ====================================================================/ ....