Oil Painting
This is a Kuwahara filter, not a blur. For every pixel it looks at four overlapping square regions around it, works out which one has the least colour variation, and takes that region's average. Flat areas get flattened into smooth patches while edges stay put, which is exactly the visual signature of a loaded brush — broad strokes of solid colour meeting at hard boundaries.
Drop images here
PNG, JPG, WebP — multiple files allowed
Brush size against image size
The brush is a pixel radius, so its visual weight depends entirely on how big the image is. On a 1000-pixel photo a radius of 3 or 4 gives a clear painted look with the subject still crisp; 8 and up is impasto, with recognisable brush-shaped patches. On a 4000-pixel image those same numbers are almost invisible and you want 12 to 20. The honest way to work is to decide the final display size first, resize to it, and then paint — painting at full resolution and downscaling afterwards averages the strokes away.
Because the window sums are computed from summed-area tables, the cost barely changes as the radius grows: radius 20 takes about as long as radius 2. What does cost is the tables themselves, so a very large image needs a noticeable chunk of memory for a moment. A 12-megapixel photo is fine on a desktop and may struggle on an older phone.
Posterising, and why it helps
A real painting has a limited palette because the painter mixed a limited number of colours. Setting the posterise level snaps each output channel onto a coarse ladder, which mimics that and strengthens the effect considerably — 8 to 16 levels is the useful range. Below 6 it reads as a screen-printed poster rather than a painting; above about 32 the difference from full colour is hard to see.
Two more things worth combining: a little sharpen afterwards puts an edge back on the strokes, and canvas-like noise at low strength suggests texture. Applying the Kuwahara twice at a small radius gives a different look from once at a large radius — smoother patches, more of them.
FAQ
Why does it look like a cartoon rather than a painting?
Usually posterising too aggressively, or a source photo that was already flat and graphic. Turn the levels off, raise the brush size, and start from a photograph with real tonal variation.
It is taking a long time on a big photo.
The tables have to be built once over the whole image before any pixel is computed, and that scales with pixel count. Resizing to the size you actually need first is both faster and gives a better-looking result.
Is this the same as a median or a blur?
No. A blur averages across edges and destroys them. A median preserves edges but does not flatten interiors into patches. Kuwahara picks a whole region to copy from, which is what produces the directional, brush-like patches.
Does it keep transparency?
Alpha is passed through per pixel, so a cut-out stays cut out. The colour of transparent pixels can still bleed into the averaging near the edge — flatten first if that shows.