Oil Painting Effect for Photos
Turn a photograph into brush strokes with a real Kuwahara style oil filter, including a fix that stops strong colour borders from turning to mud.
Drop images here or click to choose
JPG, PNG, WebP, GIF, BMP and more. Add as many as you like.
Bigger strokes look more painted and take noticeably longer on large photos.
Fewer buckets give broad poster like blocks, more buckets keep subtle shading.
Edge handling
Keep colours pure snaps every stroke to a real pixel from the photo, so a red and blue border never turns purple. Classic average is the traditional version, kept here so you can compare.
People also use
Method
Dominant tone bucket in a square window, then a snap to a real neighbouring pixel
Tested claim
On a red and blue border the classic method returned purple. This one returns the exact source colours
Brush size
1 to 8, which is a 3 by 3 up to a 17 by 17 window per pixel
Speed
A 6 megapixel photo at brush 4 takes about 4 seconds, with a progress bar throughout
Files uploaded
None. Everything runs on your own device
Price
Free, no account, no watermark
How to turn a photo into an oil painting
- 1
Add a photo
Drop one or more pictures onto the box above. Landscapes, portraits and still life all suit this filter, and photos with clear colour areas suit it best.
- 2
Set brush size
Start at 3 and watch the preview. Larger brushes give a bolder, more abstract painting. Lower the tone buckets if you want broad poster like blocks instead of subtle shading.
- 3
Paint and save
Press Paint it. Large photos are processed in bands with a live progress bar so your browser tab stays responsive, then save the finished painting.
How this compares
| What you get | FlipMyFormat | Photopea | LunaPic |
|---|---|---|---|
| Free without an account | |||
| Images stay on your device | |||
| Brush size and tone controls | |||
| Edge colours kept pure | |||
| Progress bar on large photos | |||
| Several images in one go | |||
| No watermark on the result |
How the oil filter works, and the bug most versions still have
An oil painting filter is trying to imitate something specific: a painter does not blend every neighbouring shade, they load a brush with one colour and lay down a patch. The digital equivalent is to decide, for a region, on a single representative colour and commit to it. That is why these filters are built around finding a dominant local value rather than averaging everything in sight, which would just be a blur.
Sorting neighbours into brightness buckets is the classic way to find that dominant value. The crowded bucket represents whichever surface fills most of the window, and using it means a stroke follows real structure in the photo instead of straddling two objects. Increasing the number of buckets makes the filter pickier and preserves subtle shading; reducing it merges tones into broad poster like areas.
The catch is that a brightness bucket is colour blind. Two very different hues with similar luminance fall together, and averaging them gives a colour that appears nowhere in your photograph. This is exactly the muddy border you see on many online oil filters, and it is most visible on flags, sports kits, painted walls and product shots. Snapping the final stroke to a genuine pixel from that bucket costs a second pass over the window but removes the problem entirely, which is why it is the default here.
Brush size is the main creative control and also the main cost. The window area grows with the square of the radius, so going from brush 2 to brush 4 is roughly four times the work. The preview is computed on a smaller copy so that dragging stays smooth, and the full resolution render runs in bands with a progress bar.
Nothing leaves your device. The photo is decoded to a canvas, every stroke is computed in this page, and the file you download is assembled locally.
Painterly effects sit well next to the other stylised filters. Try Photo to Sketch for a pencil look, Pixel Art Filter for a blocky retro version of the same photo, or lift the colours first with Brightness and Contrast.
How a stroke is decided
For each pixel the filter looks at a square window around it, sorts every neighbour into brightness buckets, and finds which bucket is most crowded. That dominant bucket is the local surface, and its colour becomes the stroke. Because whole neighbourhoods collapse onto the same choice, you get flat patches with abrupt borders, which is exactly what brush work looks like.
The mud problem, and the fix
Brightness alone cannot tell colours apart. A strong red at 200,40,40 and a strong blue at 40,60,200 have almost the same brightness, so they land in the same bucket, and averaging that bucket produces a dull purple right along the border. This tool picks the dominant bucket the same way but then snaps to the actual neighbouring pixel closest to that bucket's average, so the border pixels come back as the exact original red and the exact original blue.
Built for full size photos
A large window per pixel is heavy work. A 24 megapixel photo at brush 4 takes around 14 seconds, so the filter processes the picture in horizontal bands and hands control back to the browser between them. You get a real progress percentage and the page never freezes.
Where it looks weak
Faces at small brush sizes can look plastic, because skin gradients are exactly what the filter flattens. Text and fine typography inside a photo will smear. Very noisy night shots produce blotches, since noise scatters neighbours across buckets. Bright daylight subjects with clear shapes are where this filter shines.
What people use an oil painting effect for
Turn a holiday photo into a painting to print
Landscapes with clear sky, water and land areas are the easiest subjects, because the filter groups broad regions convincingly. Brush 3 or 4 on a full resolution photo gives enough stroke texture to survive printing on canvas.
Make a painted portrait as a gift
Portraits need a lighter touch. Keep the brush at 2 or 3 and the tone buckets above 20, otherwise skin flattens into plastic. Keep colours pure matters here too, since it stops the boundary between hair and background going muddy.
Create artwork for a wall canvas or a poster
Large prints reward larger brush sizes, because the strokes are viewed from further away. Render at the biggest resolution you have, since brush size is measured in pixels and a small source will look far coarser once enlarged.
Stylise product or interior photos for a mood board
Flattening a photo into painted patches removes distracting detail while keeping the colour story, which is exactly what a mood board needs. Lower the tone buckets for a more poster like result.
Give a landscape a painted look for a card or invitation
Cards are viewed small, so push the brush a little higher than you would for a print and check the preview at a similar size before you commit.
Simplify a busy photo into flat shapes
Even outside the painting look, the filter is a decent way to reduce a cluttered image to its main colour regions, which is useful as a base layer for illustration or for tracing.
On your device
Windows
Drag photos from File Explorer. On a laptop, a full resolution render at large brush sizes will spin the fan for a few seconds, which is normal for this kind of filter.
Mac
Drag from Finder or Photos. Safari, Chrome and Firefox all handle the render fine, and the progress bar tells you exactly how far along it is.
iPhone and iPad
Tap the box and choose a photo. Phone photos are large, so start at brush 2 or 3, check the preview, and only push the brush higher once you like the look.
Android
Pick from Gallery or Files. If the render feels slow, lower the brush size first, since it affects speed far more than the tone bucket count does.
Questions people ask
What does the brush size actually change?
It sets how wide a window each pixel examines. Brush 1 looks at 3 by 3, brush 8 looks at 17 by 17. Larger windows produce bigger, bolder strokes and a more abstract painting.
What are tone buckets?
The filter sorts neighbouring pixels into brightness bands before choosing which is most common. Few bands give broad flat areas, many bands keep gentle shading. Around 20 is a good balance for most photos.
Why is there a Keep colours pure option?
Because the classic method has a real flaw. Colours with similar brightness share a bucket, and averaging them creates a colour that was never in your photo, which shows as muddy borders. Keeping colours pure snaps each stroke to a real pixel instead.
Should I ever use Classic average?
Only if you want the softer, more blended look of older filters, or want to compare the two. For anything with strong colour boundaries, such as flags, jerseys or painted surfaces, pure is clearly better.
Why does it take a few seconds?
Every single pixel examines a whole window of neighbours, twice when purity is on. That is far more work than a simple filter. The picture is processed in bands with a progress bar so the page stays usable.
Will it work on a portrait?
Yes, though skin is the hardest subject because the filter flattens exactly the gradients that make a face look real. Small brush sizes with more tone buckets keep portraits looking natural.
Can I use the result commercially?
The tool adds no restrictions and no watermark. Whatever rights you had in the original photo carry over to the filtered version.
Are my photos uploaded to a server?
No. Everything happens in this page on your own device, so there is no upload, no copy and nothing to delete afterwards.
Can I paint several photos at once?
Yes. Add them all, pick your settings, and press the button. Each one renders in turn with its own progress, and a Save all button appears once more than one is ready.
What format is the saved file?
The same as your input. A JPG stays JPG and a PNG stays PNG. For a painting effect JPG is usually fine, since the result has few hard edges.
Does the picture lose resolution?
No. The preview is computed on a smaller copy for speed, but the file you save is rendered at your photo's original width and height.
The painting is rendered in this page by your own browser. Your photo is never uploaded, so there is no server copy to worry about.
Last updated September 2026 · maintained by the FlipMyFormat team.