ImageMagick is a free, open-source software suite for creating, editing, converting, and displaying images. It supports 200+ formats and offers powerful command-line tools and APIs for automation, scripting, and integration across platforms.
This report summarizes scanner evidence for ImageMagick/ImageMagick, a C project with 17,774 GitHub stars. SynthScan examined 648,395 lines of code across 839 source files, recording 871 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 1.4 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 797 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 73 finding(s).
Which changes need focused human review? 871 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 871 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | winpath.sh | 1 | #!/bin/sh | COMMENT |
| LOW | coders/bgr.c | 41 | */ | COMMENT |
| LOW | coders/farbfeld.c | 41 | Include declarations. | COMMENT |
| LOW | coders/json.c | 41 | */ | COMMENT |
| LOW | coders/json.c | 61 | #include "MagickCore/monitor.h" | COMMENT |
| LOW | coders/url.c | 41 | Include declarations. | COMMENT |
| LOW | coders/clip.c | 41 | */ | COMMENT |
| LOW | coders/dds.c | 41 | /* | COMMENT |
| LOW | coders/dds.c | 61 | #include "MagickCore/option.h" | COMMENT |
| LOW | coders/dds.c | 81 | #define DDSD_MIPMAPCOUNT 0x00020000 | COMMENT |
| LOW | coders/xc.c | 41 | */ | COMMENT |
| LOW | coders/wpg.c | 41 | #include "MagickCore/studio.h" | COMMENT |
| LOW | coders/fl32.c | 41 | Include declarations. | COMMENT |
| LOW | coders/ipl.c | 41 | */ | COMMENT |
| LOW | coders/braille.c | 41 | #include "MagickCore/attribute.h" | COMMENT |
| LOW | coders/pcd.c | 41 | */ | COMMENT |
| LOW | coders/pcd.c | 61 | #include "MagickCore/memory_.h" | COMMENT |
| LOW | coders/jpeg.c | 41 | */ | COMMENT |
| LOW | coders/jpeg.c | 61 | #include "MagickCore/exception-private.h" | COMMENT |
| LOW | coders/jpeg.c | 81 | #include "MagickCore/resource_.h" | COMMENT |
| LOW | coders/jpeg.c | 101 | #endif | COMMENT |
| LOW | coders/hald.c | 41 | */ | COMMENT |
| LOW | coders/tim.c | 41 | */ | COMMENT |
| LOW | coders/otb.c | 41 | #include "MagickCore/studio.h" | COMMENT |
| LOW | coders/histogram.c | 41 | */ | COMMENT |
| LOW | coders/pes.c | 41 | COMMENT | |
| LOW | coders/pes.c | 61 | #include "MagickCore/magick.h" | COMMENT |
| LOW | coders/pwp.c | 41 | */ | COMMENT |
| LOW | coders/dot.c | 41 | */ | COMMENT |
| LOW | coders/ps2.c | 41 | */ | COMMENT |
| LOW | coders/ps2.c | 61 | #include "MagickCore/module.h" | COMMENT |
| LOW | coders/pcx.c | 41 | */ | COMMENT |
| LOW | coders/kernel.c | 41 | Include declarations. | COMMENT |
| LOW | coders/bayer.c | 41 | */ | COMMENT |
| LOW | coders/coders.h | 21 | */ | COMMENT |
| LOW | coders/coders.h | 41 | #include "coders/cut.h" | COMMENT |
| LOW | coders/coders.h | 61 | #if defined(MAGICKCORE_WINGDI32_DELEGATE) | COMMENT |
| LOW | coders/coders.h | 81 | #include "coders/gray.h" | COMMENT |
| LOW | coders/coders.h | 101 | #if defined(MAGICKCORE_JPEG_DELEGATE) | COMMENT |
| LOW | coders/coders.h | 121 | #include "coders/msl.h" | COMMENT |
| LOW | coders/coders.h | 141 | #include "coders/png.h" | COMMENT |
| LOW | coders/coders.h | 161 | #include "coders/sixel.h" | COMMENT |
| LOW | coders/coders.h | 181 | #include "coders/uil.h" | COMMENT |
| LOW | coders/coders.h | 201 | #endif | COMMENT |
| LOW | coders/hdr.c | 41 | */ | COMMENT |
| LOW | coders/pict.c | 41 | */ | COMMENT |
| LOW | coders/pict.c | 61 | #include "MagickCore/monitor.h" | COMMENT |
| LOW | coders/scr.c | 41 | */ | COMMENT |
| LOW | coders/ps.c | 41 | */ | COMMENT |
| LOW | coders/ps.c | 61 | #include "MagickCore/image-private.h" | COMMENT |
| LOW | coders/mvg.c | 41 | */ | COMMENT |
| LOW | coders/pgx.c | 41 | */ | COMMENT |
| LOW | coders/clipboard.c | 41 | */ | COMMENT |
| LOW | coders/raw.c | 41 | */ | COMMENT |
| LOW | coders/video.c | 41 | #include "MagickCore/studio.h" | COMMENT |
| LOW | coders/yaml.c | 41 | */ | COMMENT |
| LOW | coders/yaml.c | 61 | #include "MagickCore/monitor-private.h" | COMMENT |
| LOW | coders/matte.c | 41 | */ | COMMENT |
| LOW | coders/art.c | 41 | */ | COMMENT |
| LOW | coders/jp2.c | 41 | */ | COMMENT |
| 698 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config/ltmain.sh | 157 | # -------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 183 | # ---------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 192 | # -------------------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 378 | # --------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 523 | # ------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 572 | # --------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 618 | # ---------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 641 | # -------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 665 | # ------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 689 | # ------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 722 | # ------------------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 734 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 755 | # ---------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 774 | # -------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 783 | # ------------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 819 | # ----------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 832 | # ----------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 844 | # ----------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 855 | # --------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 881 | # --------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 929 | # ------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 967 | # ------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 1057 | # -------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1073 | # -------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1138 | # ---------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1218 | # ----------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1253 | # ------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 1264 | # ---------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1317 | # ------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 1338 | # --------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1368 | # ----------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1393 | # ------------------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 1422 | # ---------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1443 | # ------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1456 | # ----------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1469 | # ---------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1494 | # ----------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1511 | # --------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1640 | # ----------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1652 | # --------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1669 | # ------------------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 1681 | # --------------------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1699 | # --------------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1813 | # ---------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1825 | # --------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1858 | # -------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1879 | # --------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 1999 | # ------------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 2028 | # ---------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 2056 | # ------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 2069 | # ------------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 2105 | # ----------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 2131 | # ---------- | COMMENT |
| MEDIUM | config/ltmain.sh | 2144 | # ------------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 2164 | # ------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 2221 | # ------------ | COMMENT |
| MEDIUM | config/ltmain.sh | 2245 | # ---------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 2336 | # --------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 2353 | # --------------------------- | COMMENT |
| MEDIUM | config/ltmain.sh | 2375 | # ------------------------------- | COMMENT |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config/ltmain.sh | 77 | # This file is dual licensed under the terms of the MIT license | COMMENT |
| MEDIUM | config/ltmain.sh | 1541 | # This file is dual licensed under the terms of the MIT license | COMMENT |
| MEDIUM | config/ltmain.sh | 1559 | # This file is a library for parsing options in your shell scripts along | COMMENT |
| MEDIUM | config/ltmain.sh | 2800 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | config/ltmain.sh | 2810 | # This function implements the same check as func_lalib_p without | COMMENT |
| MEDIUM | config/ltmain.sh | 2833 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | config/ltmain.sh | 2843 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | config/ltmain.sh | 2868 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | config/ltmain.sh | 3008 | # Create a libtool object file (analogous to a ".la" file), | COMMENT |
| MEDIUM | config/ltmain.sh | 7931 | # Create the object directory. | COMMENT |
| MEDIUM | config/ltmain.sh | 10512 | # Create the old-style object. | COMMENT |
| MEDIUM | config/ltmain.sh | 10532 | # Create an invalid libtool object if no PIC, so that we don't | COMMENT |
| MEDIUM | config/tap-driver.sh | 22 | # This file is maintained in Automake, please report | COMMENT |
| MEDIUM | PerlMagick/demo/shapes.pl | 7 | # Create a 300x300 white canvas. | COMMENT |
| MEDIUM | PerlMagick/demo/lsys.pl | 45 | # Create the main image | COMMENT |
| MEDIUM | PerlMagick/demo/lsys.pl | 50 | # Create the flower images | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config/ltmain.sh | 345 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | config/ltmain.sh | 5624 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | www/develop/index.html | 472 | <a href="https://github.com/nlfiedler/magick-rust" target="_blank" class="text-decoration-none fw-medium">Magi | CODE |
| MEDIUM | www/composite/index.html | 399 | <button class="btn btn-sm text-secondary border-0 p-0" onclick="navigator.clipboard.writeText('https://imagemagick | CODE |
| MEDIUM | www/composite/index.html | 421 | <button class="btn btn-sm text-secondary border-0 p-0" onclick="navigator.clipboard.writeText('https://imagemagick | CODE |
| MEDIUM | www/command-line-options/index.html | 7450 | given <a href="#gravity">-gravity</a> geometry setting. See <a href="../command-line-processing/index.html#geometry">I | CODE |
| MEDIUM | www/news/index.html | 250 | <p><a href="https://github.com/fmw42">@fmw42</a> contributed <a href="https://github.com/ImageMagick/ImageMagick/discuss | CODE |
| MEDIUM | www/high-dynamic-range/index.html | 421 | With HDRI enabled, you can now create images with a much wider dynamic range, allowing for more vivid colors and | CODE |
| MEDIUM | PerlMagick/demo/compose-specials.pl | 12 | # Essentially each image is equivalent to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | www/cipher/index.html | 331 | Use the <a href="../command-line-options/index.html#encipher">-encipher</a> option to scramble your image so that | CODE |
| HIGH | www/cipher/index.html | 353 | Use the <a href="../command-line-options/index.html#decipher">-decipher</a> option to unscramble your image so tha | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | config/ltmain.sh | 379 | # Check if we can use backslash as IFS='\' separator, and set | COMMENT |
| LOW | config/ltmain.sh | 666 | # Set func_arith_result to the result of evaluating TERMs. | COMMENT |
| LOW | config/ltmain.sh | 690 | # Set func_basename_result to FILE with everything up to and including | COMMENT |
| LOW | config/ltmain.sh | 856 | # Set func_len_result to the length of STRING. STRING may not | COMMENT |
| LOW | config/ltmain.sh | 1074 | # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. | COMMENT |
| LOW | config/ltmain.sh | 4287 | # Check if any of the arguments is a wrapper script. | COMMENT |
| LOW | config/ltmain.sh | 10235 | # Loop over the list of objects to be linked. | COMMENT |
| LOW | PerlMagick/t/subroutines.pl | 1006 | # Add image to list | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | www/command-line-options/index.html | 3920 | padding that was discussed above for the magnitude and phase component | CODE |
| MEDIUM | MagickCore/resample.c | 1365 | printf("# so you can use gnuplot to plot this cylindrical filter\n"); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | MagickCore/accelerate-kernels-private.h | 1913 | // TODO: implement other virtual pixel method | COMMENT |
| LOW | MagickCore/accelerate-kernels-private.h | 1937 | // TODO: implement other virtual pixel method | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | PerlMagick/demo/settings.pl | 25 | $e = $im->Read("caption:Lorem ipsum etc etc"); | CODE |