Hacker News new | past | comments | ask | show | jobs | submit login
GraphicsMagick – a Swiss army knife of image processing (graphicsmagick.org)
42 points by steph-123 4 months ago | hide | past | favorite | 18 comments



Somewhat distressing to see that the following notice first appeared in a December 2021 update note[0] and has been repeated and updated regularly ever since!

> GraphicsMagick really does need some additional productive volunteers. For several years now, the burden has entirely been on me. I have been sheparding the project for 19 years already (and contributed to ImageMagick and GraphicsMagick combined for 25 years already). It is not reasonable to expect someone with a full time job (and expecting to retire in a couple of years) to do all of the work.

0: http://www.graphicsmagick.org/NEWS.html


So… don’t do the work? Or sell commercial licenses? I never understood why developers do free work and then complain when they aren’t compensated or are overburdened. Nobody is going to throw money and resources at you out of good will. You have to ask for it. And by ask for it I mean demand it.


Perhaps,

- The library is their baby and it’s hard to not get attached and feel personally responsible.

- There are a lot of people who seem to think they have a right to be demanding of open source volunteers.

- A lot of people don’t know how to ask for and get help.

- They don’t know how to leverage the help that is offered. (Or simply the help offered isn’t the right kind)

- Delegation is hard. Letting go is hard.


It's worth noting that GraphicsMagick is originally derived from ImageMagick 5.5.2 as of November 2002 but has been completely independent of the ImageMagick project since then.


Normalize each color channel individually. You will be astonished how well this works.

  gm convert $1 -channel red -normalize -channel green -normalize -channel blue -normalize normalized/$1


It is called normalize-like-hunt. Famous Kite Aerial Photographer Alan Hunt suggested doing it manually in Paint Shop Pro. Winter scenes were particularly problematic, as early digital cameras invented crazy colors for snow.


Although I think this technique was well known before then -- Crosfield were using channel-independent histogram normalization to restore faded transparencies back in the 80s.


A while back I had some fun creating animated GIFs using GraphicsMagick via the Tcl binding - http://www.graphicsmagick.org/TclMagick/doc/ .

Here's an example that was topical back then: https://cmacleod.me.uk/tcl/magick/boris.gif .


I never understood the benefits. My only positive was in the past the good compilation experience under Mingw.


My personal take on this is: "ImageMagick is Sendmail/Bind/OpenSSL class of software - unlimited, constant and guaranted chain of CVE's and other kind of bugs with proven history of that (year by year, often each month of the year) since the dawn of times and most likely with forever continuation of that track record. And no plans of changing trajectory."

If GraphicsMagick is better than that, then it is clearly a benefit of having it around.


IM is easy to sandbox (I myself have a bwrap profile for it) and GM is abandonware; it's basically ffmpeg vs libav. VIPS is where it's at if you want to know about the future.


Yes, but Image magick offers more useful features, I prefer it if safety is not a concern.

http://im.snibgo.com/srchimgag.htm


Minor win over ImageMagick is that the commands are namespaced under “gm”. Some of the IM binaries are incredibly generic names.


imagemagick 7 (the current version) is namespaced under "magick", fwiw


For most things you would use this for, or ImageMagick for that matter, you are almost certainly better of using libvips[0]

0. https://github.com/libvips/libvips


+1

I can't recommend libvips enough. I recently switched to it from ImageMagick+tificc in a flatbed scanner appliance and am seeing a minimum of a 2x performance increase with minimal memory usage. libvips makes it easy to setup a pipeline of transformations and utilizes all CPU cores by default.

Even outside of using via pyvips, I've noticed similar performance gains over ImageMagick by using the CLI of libvips. https://www.libvips.org/API/current/using-cli.html


Thanks, @Thev00d00, I hadn't herd of this! I've amazed folks in the past with things I've built to do fairly heavy duty image processing using only shell (incl. Unix text utilities and awk) and ImageMagick, even though I am not a programmer!

I almost didn't click through to read about libvips, since I only want to use these tools from a CLI/shell interface, but - would you look at that - it's got command line bindings! I'm going to have to give this a try to see if it can do some of the "magick" stuff...


libvips dev here -- the CLI interface is deliberately really basic, you'll see much better performance and flexibility with one of the language bindings. pyvips works well:

https://github.com/libvips/pyvips

The idea is that complex CLIs like imagemagick's are almost complete programming languages, and need a lot of learning. It's much better (imo) (and less work) to have a good binding, and to lean on python for the programming side.

libvips is mostly self-binding. It has good introspection support, so the core of pyvips is just 200 lines of code, and automatically updates itself for new libvips versions.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: