[HN Gopher] Show HN: I made a tool to generate photomosaics with...
___________________________________________________________________
Show HN: I made a tool to generate photomosaics with your pictures
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.
Author : jakemanger
Score : 109 points
Date : 2025-07-28 11:23 UTC (11 hours ago)
(HTM) web link (pictiler.com)
(TXT) w3m dump (pictiler.com)
| cactusplant7374 wrote:
| How hard is it to get something like this to work with HEIC?
| jakemanger wrote:
| 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
| pimlottc wrote:
| 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 wrote:
| 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.
| bazzargh wrote:
| 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...
| wvlia5 wrote:
| 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.
| schwartzworld wrote:
| > 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.
| wang_li wrote:
| 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.
| Theodores wrote:
| 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...
| wvlia5 wrote:
| Will you implement a recursive mosaic feature (some tiles bigger
| than others)?
| jakemanger wrote:
| 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
| the_arun wrote:
| If we combine this with canvas printing, we have an art business.
| jakemanger wrote:
| I suppose you could make an art business. Or at least do what a
| few camera stores do
| benbojangles wrote:
| it's hardly a David Hockney
| dotancohen wrote:
| Even less so a Harley Davidson.
| codingdave wrote:
| 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.
| jnovacho wrote:
| 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 wrote:
| 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
| ColinEberhardt wrote:
| 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 wrote:
| 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
| verelo wrote:
| I just read up on Robert Silvers based on this. He had an
| interesting career. Really unfortunate he was a patent troll...
| bryanthompson wrote:
| 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 wrote:
| 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.
| btbuildem wrote:
| 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 wrote:
| 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.
| talkingtab wrote:
| 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... ]
| mentalgear wrote:
| 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 wrote:
| No worries! This is adjustable via sliders (in the bottom left
| area)
|
| Thanks for the kind words!
| aosaigh wrote:
| Excited to check this out. Did you write your own library for
| this or use something like OpenSeaDragon behind-the-scenes?
| jakemanger wrote:
| 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 wrote:
| I would potentially pay a licensing fee for the library if it
| could be used in other apps (and commercial settings).
| darod wrote:
| why does this require uploading my photos? can't something like
| this run native?
| waltbosz wrote:
| 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 wrote:
| 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.
| wvlia5 wrote:
| I think he means "why does it have to upload to the
| browser, can't it just read from the filesystem?" it should
| work, but browsers make it more complicated.
___________________________________________________________________
(page generated 2025-07-28 23:01 UTC)