Fact-checked by Grok 2 weeks ago

GraphicsMagick

GraphicsMagick is a robust, open-source image system comprising tools and libraries designed to read, write, and manipulate images in over 92 major file formats, including , , , PDF, and . Originally forked from version 5.5.2 in November 2002, it has been independently developed to prioritize stability in its programming and command-line interfaces, resulting in an installation footprint that is three to five times smaller than its predecessor while maintaining high performance. Key features of GraphicsMagick include multi-threaded processing via for efficient scaling across multiple CPU cores, support for extremely large images up to gigapixel sizes, and a wide array of operations such as resizing, rotating, , and . It provides command-line utilities like for and scripting, alongside programming interfaces for languages including , , Perl, PHP, Python, Ruby, Tcl, Lua, .NET, and COM, enabling integration into diverse applications from services to software. Released under the permissive , GraphicsMagick is noted for its code quality, achieving zero defects per 1,000 lines as verified by Scan in October 2025. The software powers image handling for prominent platforms such as and , demonstrating its reliability in high-volume environments. As of October 29, 2025, the latest stable version is 1.3.46, with ongoing development hosted on platforms like and Heptapod, ensuring continued enhancements for modern image workflows.

History

Origins as a fork of ImageMagick

GraphicsMagick originated as a of the software in November 2002, specifically from version 5.5.2, amid growing concerns over the instability of ImageMagick's programming and command-line interfaces driven by its rapid development cycle. This forking event took place on November 19, 2002, just days before 5.5.2's official release, marking the beginning of GraphicsMagick as an independent project aimed at addressing these compatibility issues. The primary goals of the fork were to prioritize long-term stability in the programming and command-line options, ensuring upward compatibility with 5.5.2's syntax and interfaces while avoiding the frequent mutations that characterized 's evolution. By focusing on a stable and ABI across releases, GraphicsMagick sought to provide a reliable alternative for developers and users who required consistent behavior without the disruptions from ongoing feature additions and interface changes in the parent project. The project was led by Bob Friesenhahn, a key contributor to since 1997, who became the principal maintainer of GraphicsMagick from its inception and fostered an open development model that encouraged community involvement through platforms like . This approach allowed for collaborative bug tracking, feature requests, and code contributions, establishing GraphicsMagick as a community-driven effort distinct from . GraphicsMagick's first independent release, version 1.0, was issued in May 2003, with a strong emphasis on resolving inherited bugs and introducing performance optimizations. These enhancements laid the foundation for GraphicsMagick's reputation for reliability and efficiency.

Key development milestones

Following its fork from in 2002, GraphicsMagick transitioned to an independent project with the release of version 1.0 in May 2003, which introduced initial stability enhancements such as improved and reduced resource leaks to address limitations in the original codebase. This marked the project's commitment to reliability, with early updates focusing on bug fixes and performance optimizations to differentiate it from its parent. The project adopted a multi-author open development model from its inception, encouraging contributions from various developers since , as evidenced by a growing list of contributors who authored modules for specific formats and features. This collaborative approach has sustained ongoing improvements, with over 24 contributors represented in the repository history. The 1.3 series, beginning with version 1.3 on November 9, 2008, represented a major evolution, incorporating enhancements for modern image processing needs. Notable additions included support for contemporary formats like , introduced in version 1.3.19 on December 31, 2013, enabling efficient handling of web-optimized images. Subsequent releases in this series, such as 1.3.37 on December 12, 2021, continued to refine core functionalities. The latest version as of 2025, 1.3.46 released on October 29, 2025, maintains this trajectory with incremental security and compatibility updates. This release coincides with a scan as of November 14, 2025, reporting zero defects per 1,000 lines of code across 378,120 total lines. Key events in the project's trajectory include the migration to a Mercurial-based repository on Hepapod in version 1.3.43 on March 23, 2024, facilitating better version control and accessibility for distributed development. Throughout its history, GraphicsMagick has emphasized security fixes, participating in Google's oss-fuzz project since February 4, 2018, which has helped identify and resolve potential issues proactively. This focus has resulted in fewer reported vulnerabilities compared to ImageMagick, positioning it as a more secure option for image processing applications. The codebase has grown to approximately 377,000 lines by 2025, with deliberate efforts to prioritize maintainability through modular design and rigorous testing.

Features

Core image processing capabilities

GraphicsMagick provides a robust set of primary image processing operations, enabling precise manipulation of image geometry and appearance. Resizing adjusts image dimensions using high-quality filters such as Lanczos to minimize , as implemented in the ResizeImage which scales to specified widths and heights while preserving detail. Rotation and shearing apply affine transformations via the ShearImage , allowing for arbitrary angles and distortions without loss of quality. Cropping extracts specific regions through CropImage or ChopImage, defining boundaries to isolate portions of the image efficiently. enhances using convolution-based filters in the AdaptiveSharpenImage , while blurring softens details with Gaussian or effects via BlurImage, both controlled by and parameters for tunable results. Color adjustments form a core strength, supporting corrections like gamma modification to balance non-linearly and enhancement to expand , accessible through functions such as GammaImage and ContrastImage in the Enhance module. These operations ensure accurate tonal reproduction across varying input conditions. For advanced capabilities, GraphicsMagick excels in handling enormous images, processing RGB files up to 64,000 by 64,000 pixels—exceeding 4 gigapixels—by leveraging and temporary disk files when is insufficient, effectively removing strict memory limits. This design supports resource-intensive tasks in dynamic web applications, such as generating image galleries via visual image directories (VIDs) that embed thumbnails for interactive browsing. Image synthesis capabilities include automated generation of thumbnails and icons from source images using the ThumbnailImage function, which proportionally scales while maintaining aspect ratios. Composite operations blend multiple images via CompositeImage, supporting modes like over, in, and out for layering effects with precise positioning. Montage creation assembles tiled composites of resized images, ideal for previews or collages. Color space management facilitates seamless conversions between models, including for , CMYK for printing, and for representations, handled by the TransformColorspace function to adapt images for different output intents. is managed through an alpha (matte) channel, allowing per-pixel opacity in RGB or CMYK setups, with operations like MatteFloodfillImage to set or blend semi-transparent regions. At the pixel level, GraphicsMagick performs operations via low-level access through the Pixel Cache, enabling direct manipulation of individual or neighborhood pixels. Convolution filters underpin many effects, such as and blurring, where a weights surrounding pixels to compute new values, defined by in functions like EdgeImage for . Mathematical operators in OperatorImage apply additions, multiplications, or thresholds across channels, supporting custom pixel transformations without altering the overall image structure.

Supported formats and operations

GraphicsMagick supports reading and writing over 92 major image formats, including , formats, and document types, enabling versatile image handling across diverse applications. Key supported formats encompass (read-only via libheif), DPX (read/write with support for RGB, grayscale, and color spaces at various bit depths), GIF (read/write with 8-bit palette and multi-page capabilities), HEIC (read-only via libheif and libde265), (read/write via with adjustable quality levels), JPEG-2000 (read/write via library), JXL (read/write with recent updates for improved integration), (read/write with ), PDF (read/write via integration), PNM (read/write for portable bitmap, graymap, and pixmap), (read/write with multi-resolution and multi-page support via libtiff), and (read/write with lossy and lossless modes via libwebp). Format-specific operations enhance functionality; for instance, and support multi-page sequences for animated or composite images, while PDF rendering relies on for converting pages to raster images during read/write processes. GraphicsMagick handles input/output with robust metadata extraction, including tags from and files, as well as color profiles embedded in , , PDF, and , preserving photographic and data. Output writing features customizable parameters, such as compression levels from 0 to 100 for quality-size trade-offs, and lossless modes in and to maintain fidelity without degradation. For conversion workflows, GraphicsMagick facilitates batch processing, such as transforming multiple files to while applying dithering for smooth color gradients or quantization to optimize palette-based outputs like .

Technical architecture

Implementation and performance characteristics

GraphicsMagick features a compact implementation with a base codebase of approximately 286,000 physical lines of code, expanding to 377,270 lines including all components, which contributes to its efficiency. A fully featured installation depends on 36 libraries, compared to 's requirement of 64, resulting in a 3-5 times smaller overall footprint and faster compilation times. This leaner design stems from its origins as a of 5.5.2, with subsequent development focused on optimization rather than expansion. The software employs a conservative strategy, utilizing memory-mapped temporary files to extend when large allocations fail, ensuring reliable handling of substantial workloads. For instance, processing a 64K x 64K RGB image demonstrates its superior efficiency over for large-scale operations. GraphicsMagick maintains fixed and ABI stability, avoiding frequent interface changes that could disrupt compatibility, unlike more experimental approaches in other tools. This stability is supported by rigorous testing, including 100% clean results from memcheck and helgrind, as well as passing AddressSanitizer () and UndefinedBehaviorSanitizer (UBSan) checks. Performance benchmarks highlight GraphicsMagick's advantages in command-line execution. In tests from the late to 2010s, it consistently outperformed 6.5.8-10 in operations like resizing and format conversions, with one algorithm observed to be 770 times slower in specific scenarios. More recent evaluations using the Hyperfine tool show GraphicsMagick completing a 90-degree image rotation in 77.1 milliseconds, compared to 's 187.8 milliseconds on equivalent . For JPEG-related tasks, such as conversions, GraphicsMagick exhibits quicker processing speeds, often by factors of 2-4 times, due to its optimized core algorithms. Security is prioritized through a , audited codebase that minimizes bloat from unproven features, leading to fewer reported vulnerabilities than in . Participation in Google's OSS-Fuzz project since February 2018 has helped identify and address numerous potential issues across similar tools, underscoring the value of continuous . Static analysis via reports 0.00 defects per 1,000 lines of code as of November 14, 2025, and 15 scan-build detects zero issues, reflecting the emphasis on code quality. Resource usage comparisons reveal lower demands for large s; for example, a 1024x768 at 32-bit QuantumDepth requires about 15 MB, scalable to gigapixel sizes with efficient caching that outperforms alternatives in memory-constrained environments.

Multi-threading and scalability

GraphicsMagick integrates support starting from version 1.3 to enable multi-threaded operations, allowing parallel execution of CPU-bound and memory-bound tasks across multiple processor cores on systems from vendors such as , , , , and . This integration targets loops involving pixel, row, or region processing, distributing workloads to different cores for improved efficiency in compute-intensive image manipulations. The software's scalability extends to handling very large images, including those at gigapixel scales, through mechanisms like memory-mapped files and streaming I/O, which permit processing without requiring the entire image to reside in . Memory-mapped I/O facilitates efficient access to disk-based data, while streaming allows sequential reading and writing, making it suitable for high-resolution images that exceed available memory, such as 64K x 64K RGB files. Multi-threading accelerates specific applications, including filters, resizing, and format conversions, by leveraging pixel iterators that parallelize loop execution. The number of threads can be configured via the environment variable or the -limit threads command-line option, enabling users to tune performance based on hardware capabilities. For compute-intensive tasks like blurring or geometric transformations, GraphicsMagick achieves near-linear speedup on multi-core hardware, such as doubling performance on dual-core systems or quadrupling it on quad-core setups, though actual gains follow and may reach up to 3.9x on four-core processors in benchmarks. Certain limitations persist, particularly for I/O-bound operations like file loading and saving, which remain single-threaded to maintain determinism and avoid complications from prolonged decode or encode times. This approach ensures consistent results across runs, even as multi-threading enhances other aspects of processing.

Usage and interfaces

Command-line tools

GraphicsMagick provides a unified through the gm utility, which serves as a wrapper for various image processing subcommands, enabling users to perform operations such as format conversion, manipulation, and inspection directly from the . This consolidates multiple tools into a single executable, reducing the need for separate binaries and facilitating easier scripting and automation. Key subcommands include convert for converting and transforming s between formats or applying modifications like resizing and cropping; mogrify for in-place of existing files without creating new outputs; and identify for inspecting , dimensions, and properties. For example, to resize an image, the syntax is gm convert input.jpg -resize 50% output.png, which halves the dimensions while preserving . operations, such as overlaying one onto another, use gm composite overlay.png -gravity center base.jpg result.jpg, positioning the overlay at the center of the base image. Batch processing is supported through wildcards and scripting, allowing automated workflows like resizing multiple images with gm mogrify -resize 200x100 *.jpg, which applies the transformation directly to all files in the current directory. The gm batch subcommand further enables executing sequences of commands from a script file for complex, multi-step operations. Common options include -quality to set compression levels (e.g., -quality 90 for high-fidelity output), -density to specify (e.g., -density 300 for 300 DPI), and antialiasing flags like -antialias for smoother rendering in text or tasks, all of which are enabled by default in many operations. GraphicsMagick maintains backward compatibility with ImageMagick's command-line syntax, allowing existing scripts to run with minimal adjustments. Error handling features verbose logging via the -debug option (e.g., -debug All for comprehensive output) and standardized exit codes, where 0 indicates success and non-zero values signal failures, making it suitable for integration into shell scripts and automated pipelines.

Programming language bindings

GraphicsMagick provides a core C API that serves as the foundational programming interface, enabling low-level access to image processing functions for reading, manipulating, and writing images in various formats. This API is documented comprehensively and requires C or C++ programming to utilize its full range of capabilities. For C++ developers, GraphicsMagick offers Magick++, an object-oriented wrapper around the core C API that simplifies image handling through classes like Image for managing individual image frames, along with supporting classes such as Color and Geometry for specifying parameters. A typical usage paradigm involves initializing the library, loading an image, applying operations like resizing or drawing, and saving the result; for example, the following C++ code loads an input JPEG, resizes it to 100x100 pixels, and writes the output:
cpp
#include <Magick++.h>
#include <iostream>
using namespace Magick;

int main(int argc, char **argv) {
    InitializeMagick(*argv);
    Image image("input.jpg");
    image.resize("100x100");
    image.write("output.jpg");
    return 0;
}
This approach abstracts complex operations into intuitive method calls. GraphicsMagick supports bindings for several other programming languages, allowing integration without relying on command-line invocations and thus avoiding shell overhead. These include via the object-oriented PerlMagick interface; through the lightweight Gmagick extension; using the pgmagick library, which leverages the C++ ; with the native RMagick extension or the MiniMagick wrapper; via luagraphicsmagick, which interfaces with the C ; Tcl through TclMagick for scripting environments; Windows via GraphicsMagick.NET; and access using an control for utility applications. Each binding maintains compatibility with the core library's features and API stability where applicable, though some are third-party maintained. The bindings enable thread-safe operations in multi-threaded applications when used appropriately, providing direct access to all GraphicsMagick functionalities for efficient embedding in larger programs. Installation typically involves separate packages or builds that depend on the core GraphicsMagick library, often available through system package managers or source compilation.

Licensing and community

License terms and compatibility

GraphicsMagick is released under the MIT License, also known as the X11-style license, which is a permissive open-source license approved by the Open Source Initiative. This licensing model permits users to freely use, copy, modify, merge, publish, distribute, sublicense, and sell the software in both open-source and proprietary applications without imposing copyleft requirements. The license includes standard terms such as the requirement to retain the original copyright notice and permission notice in all copies or substantial portions of the software, while providing it "as is" with no warranty or liability for damages. The 's compatibility with the GNU General Public License (GPL) allows GraphicsMagick to be incorporated into GPL-licensed projects, though users opting for GPL distribution of modified versions must provide source code as per GPL terms. Redistribution of binaries and is freely permitted without royalties, provided attribution is maintained, enabling broad adoption across commercial and non-commercial contexts. Certain bundled libraries, such as libltdl, may carry additional LGPL terms with exceptions for linking, but the core GraphicsMagick codebase remains under the . GraphicsMagick maintains full compatibility with the classic API and command-line interfaces, such as the 'convert' utility, facilitating seamless migration from without copyleft restrictions for most use cases. Historically, GraphicsMagick adopted the from its inception in November 2002 as a of version 5.5.2, aiming to promote stability and widespread adoption amid 's subsequent license evolutions toward a more restrictive model similar to 2.0. This choice underscores GraphicsMagick's commitment to a straightforward, permissive framework that avoids the complexities of evolving licensing terms.

Distribution and platform support

GraphicsMagick source code and pre-built binaries are available for download from the project's hosting on , which provides releases in various formats suitable for different users. Additionally, the complete source repository can be cloned using from the official mirror at foss.heptapod.net, enabling developers to access the full version history and contribute changes. Pre-built binaries are offered specifically for distributions, Microsoft Windows, and macOS, simplifying installation without requiring compilation. Building GraphicsMagick from source involves running the autoconf-generated to customize the , followed by standard make and make steps. This process supports the inclusion of optional delegate libraries, such as for JPEG format handling and libpng for PNG support, which extend functionality for specific image types. Cross-compilation is also facilitated for targeting systems, allowing to resource-constrained environments through appropriate during . The software exhibits broad platform compatibility, running on Unix-like operating systems including and BSD variants, as well as Windows through environments like or MSYS2, and Apple macOS. It supports both 32-bit and 64-bit architectures, with the 64-bit builds enabling efficient processing of large images on compatible hardware. GraphicsMagick is distributed via popular package managers across supported systems, such as apt on and for straightforward repository-based installation, Homebrew on macOS for formula-driven setup, and the ports collection on for compiled-from-source integration. Versions available in these repositories vary; as of November 2025, Homebrew provides 1.3.46, and offer 1.3.40 via apt, and ports provide 1.3.43. Core dependencies for GraphicsMagick are minimal, primarily requiring a C99-compliant with standard headers like inttypes.h and stdint.h, ensuring portability across modern systems. Optional modules for advanced format support, such as libtiff for image processing, can be linked during the build to enable additional capabilities without mandating them in basic installations. The GraphicsMagick community supports development through the GraphicsMagick Group, with contributions welcomed via pull requests on Heptapod and issue reporting on . Discussions occur on mailing lists and forums hosted by the project.

References

  1. [1]
    GraphicsMagick Image Processing System
    GraphicsMagick is a robust collection of tools and libraries to read, write, and manipulate an image in any of the more popular image formats including GIF, ...InstallDownloadManual pageWindows installation packageFAQ
  2. [2]
    GraphicsMagick News
    On November 19, 2002, GraphicsMagick was created as a fork of ImageMagick, several days before the ImageMagick 5.5.2 release. The objectives of ...Missing: origins | Show results with:origins
  3. [3]
    GraphicsMagick FAQ
    How does GraphicsMagick differ from ImageMagick? GraphicsMagick is originally based on (forked from) ImageMagick 5.5.2 in November 2002, from the version ...How Does Graphicsmagick... · How Do I Set The... · How Can I Add One Of Those...Missing: origins | Show results with:origins
  4. [4]
    [PDF] Bob Friesenhahn's Resume - Simple Systems
    Principal maintainer of GraphicsMagick since November, 2002. Prior to that, a major contributor (since 1997) to ImageMagick, upon which GraphicsMagick is ...Missing: founder | Show results with:founder
  5. [5]
    GraphicsMagick ChangeLog - 2003
    GraphicsMagick ChangeLog - 2003. 2003-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>. magick/annotate.c (RenderFreetype): Ensure that image storage ...Missing: founder | Show results with:founder
  6. [6]
    GraphicsMagick Authors
    Active GraphicsMagick Contributors. Bob Friesenhahn. Principal maintainer of GraphicsMagick. Author of Magick++ (C++ API to ImageMagick and GraphicsMagick) ...Missing: founder | Show results with:founder
  7. [7]
    GraphicsMagick Mission Statement
    The objectives of the GraphicsMagick project are to: Use an open development model. Encourage new developers to join the project. Avoid unnecessary source code ...
  8. [8]
    The GraphicsMagick Open Source Project on Open Hub
    In a Nutshell, GraphicsMagick... ·... has had 32,789 commits made by 24 contributors representing 3,061,098 lines of code ·... is mostly written in C with a ...
  9. [9]
    GraphicsMagick Change Logs
    10 released). 2006 (nothing released). 2005 (1.1.5 - 1.1.7 released). 2004 (1.0.5 - 1.0.6, 1.1 - 1.1.4 released). 2003 (1.0 - 1.0.4 released). 2002 · 2001 ...
  10. [10]
    Notes on fuzzing ImageMagick and GraphicsMagick - Alex Gaynor
    Feb 5, 2019 · ImageMagick and GraphicsMagick are two popular libraries for manipulating images. GraphicsMagick is a fork of ImageMagick that diverged well over a decade ago.
  11. [11]
  12. [12]
    GraphicsMagick Core C API
    The core C API provides many functions to read, manipulate, write, or display an image. To invoke the functions, write your program in C (or C++) language ...
  13. [13]
    effect - GraphicsMagick
    ChannelThresholdImage() changes the value of individual pixels based on the level of each pixel channel. ... Radius defines the radius of the convolution filter.Missing: operations | Show results with:operations
  14. [14]
    GraphicsMagick Types
    GraphicsMagick types include AffineMatrix, ChannelType, ClassType, ColorspaceType, CompressionType, and ImageType, among others.
  15. [15]
    GraphicsMagick Supported Formats
    GraphicsMagick supports over 92 major file formats, identified by 'magick' strings, including formats like AAI, ART, AVIF, and BMP.
  16. [16]
    GraphicsMagick / News - SourceForge
    Various bug fixes for the JPEG, JXL, TGA, TIFF, and TXT format. ... Integration with the JasPer JPEG 2000 library has been improved, including adding support for ...<|control11|><|separator|>
  17. [17]
  18. [18]
  19. [19]
  20. [20]
    GraphicsMagick GM Utility
    GraphicsMagick's gm provides a suite of utilities for creating, comparing, converting, editing, and displaying images.
  21. [21]
    GraphicsMagick vs ImageMagick Benchmarks
    We found that GraphicsMagick was usually considerably faster at executing image processing operations from the command line than ImageMagick 6.5.8-10 was.
  22. [22]
    OpenMP in GraphicsMagick
    GraphicsMagick performs large memory allocations for raster image storage interspersed with a limited number of smaller allocations for supportive data ...
  23. [23]
    GraphicsMagick ChangeLog - 2008
    c: Incorporate OMP thread views into the pixel cache so usage is less invasive. Update OMP-enhanced source modules to suit. (GetImagePixelsEx): New function ...
  24. [24]
    GraphicsMagick Utilities
    GraphicsMagick's command line utility 'gm' provides commands like 'animate', 'convert', 'compare', 'identify', 'mogrify', and 'montage'.
  25. [25]
    Magick++ API for GraphicsMagick
    ### Simple Usage Example for Magick++ in C++
  26. [26]
    GraphicsMagick Programming Interfaces
    GraphicsMagick is a robust collection of tools and libraries to read, write, and manipulate an image in any of the more popular image formats including GIF, ...
  27. [27]
    GraphicsMagick Perl API -- PerlMagick
    PerlMagick is an objected-oriented Perl interface to GraphicsMagick. Use the module to read, manipulate, or write an image or image sequence from within a Perl ...
  28. [28]
  29. [29]
  30. [30]
  31. [31]
  32. [32]
  33. [33]
  34. [34]
  35. [35]
    ImageMagickObject - GraphicsMagick
    The ImageMagickObject is a COM+ compatible component that may be invoked from any language capable of using COM objects.
  36. [36]
    GraphicsMagick Copyrights and Licenses
    In November 2002, the GraphicsMagick Group created GraphicsMagick from ImageMagick Studio's ImageMagick and applied the "MIT" style license.
  37. [37]
    Installing GraphicsMagick
    GraphicsMagick supports 8-bit, 12-bit, and 16-bit JPEG, provided a JPEG library (e.g. libjpeg-turbo) which supports those depths.
  38. [38]
    GraphicsMagick download | SourceForge.net
    Rating 5.0 (21) · FreeIt is derived from ImageMagick, with the objective of providing better stability and performance than ImageMagick while retaining the original MIT/X11 license.GraphicsMagick Files · GraphicsMagick Support · Reviews
  39. [39]
    GraphicsMagick / graphicsmagick · GitLab - Heptapod
    Nov 16, 2023 · GraphicsMagick may be retrieved from foss.heptapod.net or SourceForge via one of the following commands: hg clone https://foss.heptapod.net ...
  40. [40]
    GraphicsMagick - Browse Files at SourceForge.net
    Aug 27, 2024 · 2025 ... defects at 0, or very close to 0. Information about the Coverity status may be found at https://scan.coverity.com/projects/graphicsmagick ...
  41. [41]
    UNIX/Cygwin/MinGW/MSYS2 Compilation - GraphicsMagick
    GraphicsMagick performs all image processing computations using floating point or non-lossy integer arithmetic, so results are very accurate. Increasing the ...
  42. [42]
    GraphicsMagick Windows Installation
    The 64-bit version allows processing larger images in memory (rather than disk files), provided that the system has more than 2GB of RAM installed. Memory ...
  43. [43]
    GraphicsMagick – A Powerful Image Processing CLI Tool for Linux
    Nov 17, 2023 · On Debian-based distributions such as Ubuntu and Linux Mint, you can install it using the apt package manager as shown. $ sudo apt update $ sudo ...
  44. [44]
    graphicsmagick - Homebrew Formulae
    graphicsmagick ; jpeg-turbo, 3.1.2, JPEG image codec that aids compression and decompression ; jpeg-xl, 0.11.1, New file format for still image compression.
  45. [45]
    graphics/GraphicsMagick: Fast image processing tools based on ...
    ... formats like DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM, and TIFF. GraphicsMagick supports huge images and has been tested with gigapixel-size images.