jfreundJFPainter
JFPainter

Features

Everything JFPainter does, one idea per chapter. Pick one, or read from top to bottom.

One window, many pictures.

Every picture you open gets a tab in the title bar, with a small preview. The four panels, Tools, Colors, History and Layers, float above the canvas: show or hide each one with its button, drag it where it suits you, and it snaps to the edges of the window.

Zoom and pan with the mouse, the keyboard or two fingers, and turn on rulers and a pixel grid in pixels, inches or centimetres. Opening another picture from your file manager adds a tab to the window that is already open, and the pictures you open and save show up in your system's list of recent files.

JFPainter's title bar: the app icon, the menus File, Edit, View, Image, Layers, Adjustments and Effects, a tab with a preview of the open picture, the buttons of the four panels, settings and help. JFPainter's status bar: the hint of the paintbrush, the image size 1152 by 580, the unit Pixel and the zoom 66 percent with its slider.
Top: the title bar with the menus, a tab for the open picture and the buttons of the four panels. Bottom: the status bar with the tool's hint, the image size, the unit and the zoom.

Layers, and a history that remembers.

Add, delete, duplicate and merge layers, move them up and down, flip or rotate a single one, and hide it with one click. The layer properties, name, visibility, blend mode and opacity, change live while you watch; only OK turns them into a step. Import a picture as a new layer, and if it is larger than the canvas, JFPainter asks what to do.

The History panel lists every step by name. Click any of them to go back there, or forward again. When memory gets short, older steps are packed away first.

The Layer properties dialog of the layer Brush stroke: name, visible, blend mode Multiply and opacity 204 of 255, next to the History panel and the Layers panel with the layers Lettering, Brush stroke and Background.
Layer properties: the brush stroke multiplies at 80 percent, and the change shows at once.

Brushes, colours and fills.

Paintbrush, eraser, clone stamp and recolour respond to pen pressure. In the brush tip dialog you load a tip from a PNG, BMP or TIFF image and set its angle, scatter, the variation of size and angle, the flow, and whether the tip turns with the stroke. Six round tips come with the app, and JFPainter reads the supported settings of presets from popular brush plugins.

Fill and gradient come with their own options, the colour picker takes its colour from one layer or from the whole picture, and recolour swaps one colour for another as you paint. The Colors panel keeps a primary and a secondary colour, a colour wheel and a palette you save and load as a text file.

The Colors panel: a blue primary and a black secondary colour, a colour wheel with a brightness slider and a palette of colour swatches.
The Colors panel.

Selections, text and shapes.

Draw rectangles and ellipses freely, at a fixed ratio or at a fixed size; they keep their handles, so you can still adjust them. The lasso follows your hand, and the magic wand picks similar colours with a tolerance you set, on one layer or the whole picture. Then move the pixels or just the outline, rotate and scale them, or crop the picture to the selection.

Text goes straight onto the canvas, with font, size, bold, italic, underline and strikethrough, three kinds of rendering and three alignments. It is shaped with your fonts' OpenType features, mixes left-to-right and right-to-left scripts and falls back to other fonts for missing characters. Lines, curves and shapes, the built-in ones and your own, keep their handles until you finish them.

  • Replacethe default
  • AddCtrl + left button
  • Subtractright button
  • IntersectAlt + left button
  • InvertCtrl + right button
How a new selection (the circle) meets the one you already have (the rectangle): the five selection modes, with their mouse shortcuts.

Adjustments and effects.

Every adjustment and effect shows its result on the canvas while you change its settings. OK applies it through the selection as one step in the history, and Ctrl+F repeats the last effect. Curves and Levels have dialogs of their own, Levels with histograms of the picture.

Fifteen adjustments and fifty effects in nine groups come built in. Plugins add more of both, and they appear right in these menus.

Adjustments 15

Auto level, Black and white, Advanced black and white, Brightness / contrast, Color balance, Color temperature / tint, Curves, Exposure, Hue / saturation, Invert alpha, Invert colors, Levels, Posterize, Sepia, Shadows / highlights

Blur 10

Bokeh, Fragment, Gaussian blur, Motion blur, Radial blur, Sketch blur, Square blur, Surface blur, Unfocus, Zoom blur

Photo 9

Content-aware fill, Dodge / burn, Glow, Red eye removal, Retouch portrait, Sharpen, Soften portrait, Straighten, Vignette

Distort 9

Bulge, Crystallize, Dents, Frosted glass, Morphology, Pixelate, Polar inversion, Tile reflection, Twist

Artistic 6

Advanced oil painting, Dream, Ink sketch, Oil painting, Pastel, Pencil sketch

Object 4

Bevel, Drop shadow, Feather object, Inner shadow

Render 4

Clouds, Julia fractal, Mandelbrot fractal, Turbulence

Stylize 4

Edge detection, Emboss, Outline, Relief

Noise 3

Add noise, Median, Reduce noise

Color 1

Quantize

Every built-in adjustment and effect, with the names the menus use.

Files and formats.

PSD keeps raster layers with their names, visibility, opacity and supported blend modes. Groups, masks, text and layer effects of a PSD arrive as the finished picture. PDN keeps the layer stack too.

JFPainter edits with 8 bits per channel. A picture with more depth, or one that has to be converted on opening, opens as a new, unsaved document with a note, so the original file is never overwritten by accident.

Palettes load and save as text files, your own shapes come from XAML files, and a plugin adds QOI. You can also print, with a preview, and assign a colour profile in the Image menu.

Image formats JFPainter opens and saves
FormatOpenSaveGood to know
PNG.pngyesyesLossless, with transparency
JPEG.jpg .jpeg .jfifyesyesPhotos, no transparency
WebP.webpyesyesLossy or lossless, with transparency
AVIF.avifyesyesBased on AV1
HEIC / HEIF.heic .heifyesyesThe format of many phone cameras
JPEG XL.jxlyesyesA better writer comes as a module on the desktop
JPEG XR.jxr .wdp .hdpyesyes
TIFF.tif .tiffyesyesWith compression and bit depth options
GIF.gifyesyesAn animation opens with its first frame
BMP.bmp .dibyesyes
TGA.tgayesyes
DDS.ddsyesyesGame textures, with mipmaps and cube maps
PSD.psdyesyesKeeps raster layers
PDN.pdnyesyesKeeps raster layers
PSB.psbyesnoSave the result as PSD or PDN

Your look, your language.

JFPainter's look comes from JFLib's styles. The setup lets you choose between WinUI, Classic, macOS and KDE, and light and dark work in each of them.

The app speaks German, English and French, and you switch in the settings. Menus, dialogs and messages are translated in all three.

It runs on Windows and Linux, in the browser and, as an experiment, on Android, where painting, opening files and two-finger zoom already work with your fingers.

  • The Colors panel in the WinUI style.
    WinUI
  • The Colors panel in the macOS style, with a centred title and a blue drop-down button.
    macOS
  • The Colors panel in the KDE style, with a centred title and blue outlines.
    KDE
The same Colors panel in three of the four styles (German interface).
Part of jfreund.orgBuilt with JFLibLegal noticePrivacy