Fred's ImageMagick Scripts
fmwconcepts.com
fmwconcepts.com
Fred's ImageMagick Scripts - https://news.ycombinator.com/item?id=16668254 - March 2018 (100 comments)
Fred's ImageMagick Scripts - https://news.ycombinator.com/item?id=8912591 - Jan 2015 (13 comments)
With CLI tools, however, there is only one way of doing most things. There is no OOP vs functional, no loop vs comprehension, no choice of data structure, nothing. So commands being copyrightable implies no one can do certain actions with the CLI without a license. Because the only way to do those actions are with the exact command that was copyrighted.
But if a command language is turing complete, or some subset of it, then I guess there is more than one way of doing something and the copyright is a fair game, you can always reimplement it
https://en.wikipedia.org/wiki/Clean_room_design.
Works in the case of copyright. Not patent though.
These aren't simple commands, but programs written in bash, with multiple ways to implement them, and thus clearly copyrightable.
He is trying to license making a mandelbrot fractal...
"reprogram them in another scripting language"
Now that I have looked at his page I can never make another mandelbrot in Python again.
I get what he is trying to stop but the language is silly.
Just ugly sites with pages and pages of information, made out of love for a niche topic. I'm sure this took thousands of hours to make.
Neither seem able to decompose an input image into smaller "tile" images.
I have some very large TIFFs that I cannot work with (I can't even open them in some cases!) and I would like to run them through a mill that can "paginate" the larger image into a number of smaller ones.
% brew install openimageio
But have not yet put it to task with my large files.
https://github.com/tombetthauser/protest_signsplitter/blob/m...
I've used a variant of this code to tile large aerial surveys for processing. The snippet needs a bit of cleaning but it works out of the box:
https://gis.stackexchange.com/questions/306861/split-geotiff...
http://www.graphicsmagick.org/GraphicsMagick.html#details-cr...
«If the x and y offsets are omitted, a set of tiles of the specified geometry, covering the entire input image, is generated. The rightmost tiles and the bottom tiles are smaller if the specified geometry extends beyond the dimensions of the input image.»
% brew install graphicsmagick
% gm convert -crop 32x32 source_image.png +adjoin image_tile%02d.png
I'll have to put it through its paces on some large images this weekend.
% brew install libvips
I have not (yet) had a chance to put it through its paces.
TLDR:
* ImageMagick has more questions and follows on StackOverflow (read: better for getting help)
* ImageMagick has more features
* GraphicsMagick is faster with a caveat that you shouldn't use GraphicsMagick (or ImageMagick for that matter) if speed is important for you
I believe ImageMagick includes some of the hash based methods which often do a DCT reduction and then do 2D analysis of similarity, emitting a hash code which you can do a hamming distance thing on. But thats a way off practical use to actuall find, stack, rename and identify the one golden one to keep in all the dupes.
"Image Retrieval Based on Using Hamming Distance"
https://www.sciencedirect.com/science/article/pii/S187705091...
EDIT: Here's a python package that does image deduplication. Not ImageMagick and no idea on its performance though.
My first approach just used metadata, but that doesn't aggregate the files stripped of their original metadata, like what you get from a Google Takeout, so I had to add image hashing as well. I actually generate three mean hashes in L*a*b color space for PhotoStructure (many hashes ignore color). I've also found that metadata needs to be normalized, including captured-at time, and even exposure metadata. It's a lot of whack-a-mole, especially add new cameras and image formats are released every year.
I described more about what I've written for PhotoStructure (which does deduplication for both videos and images) here: https://photostructure.com/faq/what-do-you-mean-by-deduplica... -- it might help you avoid some of the pitfalls I've had to overcome.
A lot of my dupes are google dupes but across about 4 cameras with a mixture of original/compressed size.
A lot of my local copies had jhead run on them to "fix" time. So have modified EXIF
A small number have me playing with ITPC to try and auto-name things for tag matching.
Your program looks to be the one which understands the corner cases.