This technique has been around for a long time but it was patented, and the patent finally expired a few years ago. Fun to see it commoditized like this.
What makes you think patents prevented photo mosaics? There were multiple programs anyone could buy for $50 over 20 years ago.
The basic technique is to scale down images and treat them as high dimensional points, then match them with patches of the main image, also treated as high dimensional points. This can be done efficiently with high dimensional nearest neighbors.
You might be thinking of SIFT, which was a patented and part of the methodology was more efficient high dimensional searching using best bin first kd-trees.
Patents are about processes and if you read this patent it is very specific. Your link even mentions that there have been multiple programs that do this for a long time.
Patents are not only about processes, they can also cover the final product amongst other aspects. The patent in question also does the same [1], as visible via claims 14, 29, 46, 51, whereas the claim 1 is about the "method".
Reading the claim #1 of the said patent, I do not find it "very specific" as you said. It is quite broad within the purposes of making a mosaic image. One way of avoiding infringing claim 1 is to not use a computer for this.
I agree that the Wikipedia page mentions multiple programs doing this for long, however, it has not committed that there has no patent violation and a possibility that the patent holder "has chosen not to bring infringement proceedings" is also cited.
>> Is there any way of knowing if a certain type of program is patented?
If you've a seen similar thing pre-existing, chances are that it may be someone's intellectual property, and which then should be respected.
In this particular example, Wikipedia page on photographic mosaics [1] itself has a section on IP aspects of the same [2].
>> How can a developer protect themselves from publishing patented software?
The best approach is to respect the prior art and properly license the same as needed.
At times, a developer may have strong reasons to believe that the related prior patents are either not infringed or are invalid. In this case they should be ready to be challenged.