Show HN: I made a tool to generate photomosaics with your pictures

95 jakemanger 34 7/28/2025, 11:23:50 AM pictiler.com ↗
Hi HN!

I wanted to make some photomosaics for an anniversary gift, but I ended up building this tool and turning it into a website that anyone can use.

For those who don’t know, a photomosaic is an image made up of many smaller tile images, arranged in a way that forms a larger, recognisable picture.

The best part? Everything runs directly in your browser. No files are uploaded, and there’s no sign-up required.

Comments (34)

ColinEberhardt · 5h ago
Very cool. I actually created a shareware application that rendered Photomosaics 25 years ago! Here is a link to "Mosaic Magic" from the Wayback Engine:

https://web.archive.org/web/20010405175706/http://fishsoft.c...

I managed to make a decent amount of spending money from that application during my University years.

One interesting lesson I learnt was about enterprise pricing. I think I charged ~$20 for Mosaic Magic, however, I started to get emails from organisations asking about pricing for commercial use. Nothing on my pricing page suggested that commercial use was prohibited, I guess they just thought $20 was rather cheap. From there-on, I charged $150 for "commercial use". Basically, anyone who thought they should be paying more, did!

Finally, Robert Silvers filed a patent and trademark for Photomosaics in ~2000, and was, for a while aggressively pursuing organisations that he felt was infringing. I assume this has all died down now.

jakemanger · 4h ago
Thanks for sharing! Both the link and the story. As a University student and someone that has here also made a photomosaic app, that is super relatable.

That's good to know about the pricing. It's free for now. Honestly didn't expect this level of interest (there's 307 people on the site right now according to analytics).

With that interest, I may add some plans - potentially for the commercial use in particular

bryanthompson · 2h ago
I used Mosaic Magic back in my high school journalism class to design a yearbook cover 20+ years ago! Turned out great - it won some kind of award iirc.
teiferer · 1h ago
Kudos to OP for not immediately thinking about how he best could monetize this.

I'm glad FOSS made Shareware die out, but now web apps requiring me to create an account first have taken its place. Kudos to OP for resisting that too.

verelo · 3h ago
I just read up on Robert Silvers based on this. He had an interesting career. Really unfortunate he was a patent troll...
talkingtab · 4h ago
An alternative: http://imagequilts.com/

The link comes from Edward Tufte's web site.

These are at least related to Edward Tufte. If you scroll to the bottom there is information about installing a Chrome Extension (disclaimer: I do not use Chrome) that will generate an image quilt.

The author of the Extension is given as Adam Schwartz.

[edit: Chrome store link is https://chromewebstore.google.com/detail/imagequilts/ceebcpb... ]

bazzargh · 5h ago
While this is nice enough, it bothers me that these don't look much like "art". If you look at real roman mosaics, they do not place points in a grid - they use a technique called "opus vermiculatum" https://en.wikipedia.org/wiki/Opus_vermiculatum ... snaking the tiles around so that there is a flow to it; the overall effect is much better.

I think that'd be possible to automate too. I was doing something related over here: https://hachyderm.io/@bazzargh/112767548339559102 - in that I was trying to generate sketch-like renderings from photographs. What I did was to pick random points, look at the brightness gradient (taken from the Sobel operator, there are other ways to do this), move up the gradient a bit and sketch some parallel lines (and then various experiments with hatching for shading the flatter areas)

In a similar way you could start with a grid of tiles _with some separation_, and allow them to move and align better with the gradient of the underlying picture, and not lie _on_ edges, if possible. If they overlap, allow the tessera to be cut, and only then choose images to colour-match the average on the tile, leaving some "grout" in the image (I'd probably speckle that a bit so it didn't look too uniform). Then the result might look more like real mosaics.

I might give this a go...

schwartzworld · 2h ago
> While this is nice enough, it bothers me that these don't look much like "art".

The author didn't invent this style. The first thing I thought of was the poster for the Truman Show. https://artofthemovies.co.uk/products/the-truman-show-1998-m... The site seems to make that happen quite well.

wvlia5 · 5h ago
It could be better sometimes for tiles to lie over edges. For example, there might be an edge dividing red and green areas, and one of your tiles is mostly half red and half green.
Theodores · 1h ago
Whilst you are at it...

https://github.com/openseadragon/openseadragon

A photo mosaic demands to have photos that are high resolution. You don't want to zoom in to find blurry jpegs, it just isn't right!

I have had great fun with OpenSeadragon in the past and now there is the VIPS image processing library for writing out a massive set of image tiles.

Hence it is possible to work with thumbnails and then render out the thing with OpenSeadragon and VIPS.

OpenSeadragon was amazing when it was a Microsoft demo a few decades ago, but time has moved on. I wonder what can be done with tilesets in HTML5 with picture tags or in SVG to present a infinitely zoomable montage.

I like your suggestion and the options for rotating and clipping images with SVG methods. I always confuse mask and clip, but, in SVG, much could be done.

For me, the starting point would be to do an SVG with thousands of images in it, to just watch my computer crash as I step up the resolution. Really I want to recreate OpenSeadragon in SVG...

wang_li · 2h ago
There is a naive approach to making this kind of thing that reduces the component images to such a small size (2-3 pixels in large image) that turns this into more of a dithering exercise than looking for artifacts in each component image to match up lines. It's still a nice effect, but it's quite different when the component images are > 10% the size of the final image, instead of < 1% the size.
btbuildem · 4h ago
A friend of mine made this in the late 90s -- we were in highschool at the time. Of course he used it to make renditions of scantily-clad ladies out of thousands of pictures of, you guessed it.
jakemanger · 4h ago
haha there's a few similar stories coming on here now. Great to hear.

Hey, if you want to do that with this software, I can't see any files you upload (it's all local processing in your web browser), so go for it.

mentalgear · 4h ago
Nice! Almost 20 years ago I paid good money to get this done.

I see that your method also uses a lot of tinting and even overlaying the original image.

Would be great though if this was adjustable via sliders!

Thank You for making this available local-/privacy-first & in-browser!

jakemanger · 3h ago
No worries! This is adjustable via sliders (in the bottom left area)

Thanks for the kind words!

pimlottc · 6h ago
Small suggestion: in the "Try These Examples" section, the call-to-action is click a button that is not initially visible. Users have to hover over the image to see the "recreate" button, which is not obvious. You should add a dedicate "Recreate" button below each example so it's immediately clear what to do.

Also it would a good idea to have a detail view of a sample image at 100% to show that the images are made up of other photos. Maybe even an interactive zoom window. At monitor resolutions, the full images mostly just look like smudgy photos, and not all users may be familiar with photomosiacs. Even the "view" option on the sample mosiacs does not let you see the detail of the individual tiles very well.

jakemanger · 5h ago
Thank you for the feedback! I actually just did a quick change to add that recreate button CTA like you said. Much better and easy to understand.

I'll work on that detailed sample image view too. That's a great idea - job for tomorrow.

the_arun · 5h ago
If we combine this with canvas printing, we have an art business.
codingdave · 3h ago
There are a plethora of print shops with API access to set this kind of thing up. The problem these days is pricing, specifically shipping. While people may be willing to pay for the work itself, shipping canvasses or framed prints gets expensive fast. This is why so many artists and photographers who sell their photos just sell posters... they are cheap to ship and don't give people sticker shock.
jakemanger · 5h ago
I suppose you could make an art business. Or at least do what a few camera stores do
benbojangles · 4h ago
it's hardly a David Hockney
dotancohen · 4h ago
Even less so a Harley Davidson.
darod · 2h ago
why does this require uploading my photos? can't something like this run native?
waltbosz · 1h ago
The website says it runs locally. In browser JavaScript , you can import a file from local file system to JavaScript's local scope without sending it to a server. I'm guessing that's how this app works.

If you want to know for sure, open your browser's dev tools, switch to the network tab, import a file and watch to see if a network request is made.

jakemanger · 1h ago
Yes, that's exactly right. All your images are processed locally and don't leave your device. They are all processed in the web browser with javascript and your dev tools like you say should show that.
aosaigh · 3h ago
Excited to check this out. Did you write your own library for this or use something like OpenSeaDragon behind-the-scenes?
jakemanger · 3h ago
This is completely my own library running in the cloud. Started as a little experiment for myself and now it's blown out into this
aosaigh · 2h ago
I would potentially pay a licensing fee for the library if it could be used in other apps (and commercial settings).
jnovacho · 5h ago
How exactly does this work? The example I chose is a mosaic of photos, over which is overlayed the original image with alpha set to 50%.

So it does not use the submitted photos as tiles, right?

jakemanger · 5h ago
If you adjust the overlay alpha to 0% you'll see it does use the submitted photos as tiles.

Click the "Create Mosaic" button and you should see it arrange the tiles live in the best possible way to reproduce the image. The overlay is a common technique people use to make the main image more visible. It's a personal preference thing.

Generally, the more diverse or colours you select for your tile images, the more clear and "good" the main mosaic image will be

wvlia5 · 5h ago
Will you implement a recursive mosaic feature (some tiles bigger than others)?
jakemanger · 5h ago
I could. That sounds like a great idea! Was thinking about uneven sized tiles. I just tried to make the basic photo mosaic with even sized tiles for now
cactusplant7374 · 6h ago
How hard is it to get something like this to work with HEIC?
jakemanger · 6h ago
Are you on Mac? If you right click a file/s > Quick Actions > Convert Image then you should be able to convert to JPEG or PNG.

Funnily enough I also made a universal file converter app which could do it for you on other platforms. Its at https://howtoconvert.co