Settings

Theme

GraphicsMagick – a Swiss army knife of image processing

graphicsmagick.org

42 points by steph-123 a year ago · 19 comments

Reader

ttctciyf a year ago

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

  • cedws a year ago

    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.

    • cruffle_duffle a year ago

      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.

steph-123OP a year ago

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.

timonoko a year ago

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
  • timonoko a year ago

    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.

    • jcupitt a year ago

      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.

cmacleod4 a year ago

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 .

fithisux a year ago

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

  • Woodi a year ago

    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.

  • 0cf8612b2e1e a year ago

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

    • jcupitt a year ago

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

Thev00d00 a year ago

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

  • nvllsvm a year ago

    +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

  • dublin a year ago

    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...

    • jcupitt a year ago

      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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection