ENBLEND(1)

πŸ’– ENBLEND πŸ’–

okay bestie, listen up, because this is genuinely one of the most iconic little image tools in the game. it's from the User Commands manual, no cap.


✨ NAME ✨

enblend β€” combine images using a multiresolution spline πŸ¦‹


🌈 SYNOPSIS 🌈

enblend [options] [--output=IMAGE] INPUT...

πŸ’… DESCRIPTION πŸ’…

So basically: it glues your INPUT images together into one single IMAGE. That's the whole vibe. 🫢

INPUT... are either image filenames or response filenames. And the way you spot a response filename? It starts with an @ character. That's it, that's the tell. πŸ‘‘


πŸŽ€ OPTIONS πŸŽ€

πŸ’œ Common options:

  • -l, --levels=LEVELS β€” cap how many blending LEVELS you're using (anywhere from 1 to 29). A negative number of LEVELS decreases the maximum, and "auto" puts things back to the default automatic maximization. 🌸
  • -o, --output=FILE β€” write the output to FILE; default is "a.tif" ✨
  • -v, --verbose[=LEVEL] β€” report progress but make it chatty; repeat the flag to crank verbosity up, or just set LEVEL directly πŸ’¬
  • --compression=COMPRESSION β€” set the compression of the output image to COMPRESSION, where COMPRESSION is: "deflate", "jpeg", "lzw", "none", "packbits" for TIFF files, and 0 to 100, or "jpeg", "jpeg-arith" for JPEG files β€” and heads up, "jpeg" and "jpeg-arith" accept a compression level. πŸ”₯

πŸ¦‹ Advanced options:

  • --blend-colorspace=COLORSPACE β€” force COLORSPACE for blending operations. Enblend uses "CIELUV" for images with an ICC-profile and "IDENTITY" for the ones without, and also for all floating-point images. The other blend color spaces on the menu are "CIELAB" and "CIECAM". 🎨
  • -c, --ciecam β€” use CIECAM02 to blend colors; turn it off with "--no-ciecam". and ngl, this option will be withdrawn in favor of "--blend-colorspace", so don't get too attached πŸ’€
  • -d, --depth=DEPTH β€” set the number of bits per channel of the output image, where DEPTH is "8", "16", "32", "r32", or "r64" ⭐
  • -f WIDTHxHEIGHT[+xXOFFSET+yYOFFSET] β€” manually set the size and position of the output image. this is the move for cropped and shifted input TIFF images, like the ones Nona produces. πŸ“
  • -g β€” the associated-alpha hack for Gimp (before version 2) and Cinepaint πŸ™ˆ
  • -w, --wrap[=MODE] β€” wrap around the image boundary, where MODE is "none", "horizontal", "vertical", or "both"; default is none; and if you don't give an argument, the option selects horizontal wrapping 🌯

🧚 Mask generation options:

  • --coarse-mask[=FACTOR] β€” shrink overlap regions by FACTOR to speedup mask generation; this is the default; if omitted, FACTOR defaults to 8 ⚑
  • --fine-mask β€” generate the mask at full image resolution; use this e.g. if the overlap regions are very narrow πŸ”
  • --optimize β€” turn on mask optimization; this is the default; disable it with "--no-optimize" ✨
  • --save-masks[=TEMPLATE] β€” save generated masks in TEMPLATE; default: "mask-%n.tif"; the conversion chars are: "%i": mask index, "%n": mask number, "%p": full path, "%d": dirname, "%b": basename, "%f": filename, "%e": extension; lowercase characters refer to input images, uppercase ones to the output image πŸ‘‘
  • --load-masks[=TEMPLATE] β€” use the existing masks in TEMPLATE instead of generating them; same template characters as "--save-masks"; default: "mask-%n.tif" πŸ“‚
  • --visualize[=TEMPLATE] β€” save results of optimizer in TEMPLATE; same template characters as "--save-masks"; default: "vis-%n.tif" πŸ‘€

πŸ’€ Expert options:

  • -a, --pre-assemble β€” pre-assemble non-overlapping images; negate it with "--no-pre-assemble" 🧩
  • -x β€” checkpoint partial results πŸ’Ύ
  • --fallback-profile=PROFILE-FILE β€” use the ICC profile from PROFILE-FILE instead of sRGB 🎨
  • --layer-selector=ALGORITHM β€” set the layer selector ALGORITHM; default: "all-layers"; the available algorithms are: "all-layers": select all layers in any image; "first-layer": select only first layer in each (multi-)layer image; "last-layer": select only last layer in each (multi-)layer image; "largest-layer": select largest layer in each (multi-)layer image; "no-layer": do not select any layer from any image; πŸ—‚οΈ
  • --parameter=KEY1[=VALUE1][:KEY2[=VALUE2][:...]] β€” set one or more KEY-VALUE pairs πŸ”§

🌸 Expert mask generation options:

  • --primary-seam-generator=ALGORITHM β€” use main seam finder ALGORITHM, where ALGORITHM is "nearest-feature-transform" or "graph-cut"; default: "graph-cut" βœ‚οΈ
  • --image-difference=ALGORITHM[:LUMINANCE-WEIGHT[:CHROMINANCE-WEIGHT]] β€” use ALGORITHM for calculation of the difference image, where ALGORITHM is "max-hue-luminance" or "delta-e"; LUMINANCE-WEIGHT and CHROMINANCE-WEIGHT define the weights of lightness and color; default: delta-e:1:1 🌈
  • --optimizer-weights=DISTANCE-WEIGHT[:MISMATCH-WEIGHT] β€” set the optimizer's weigths for distance and mismatch; default: 8:1 βš–οΈ
  • --mask-vectorize=LENGTH β€” set LENGTH of single seam segment; append "%" for a relative value; defaults: 4 for coarse masks and 20 for fine masks πŸ“
  • --anneal=TAU[:DELTAE-MAX[:DELTAE-MIN[:K-MAX]]] β€” set annealing parameters of optimizer strategy 1; defaults: 0.75:7000:5:32 🌑️
  • --dijkstra=RADIUS β€” set search RADIUS of optimizer strategy 2; default: 25 pixels 🧭

⭐ Information options:

  • -h, --help β€” print this help message and exit 🫢
  • -V, --version β€” output version information and exit πŸ’–
  • --show-globbing-algorithms β€” show all globbing algorithms πŸŒ€
  • --show-image-formats β€” show all recognized image formats and their filename extensions πŸ–ΌοΈ
  • --show-signature β€” show who compiled the binary when and on which machine πŸ•΅οΈ
  • --show-software-components β€” show the software components with which Enblend was compiled 🧱
fr fr, Enblend accepts arguments to any option in uppercase as well as in lowercase letters. no stress. πŸ’…

🌍 ENVIRONMENT 🌍

  • OMP_NUM_THREADS β€” this env var sets the number of threads to use in OpenMP parallel regions. if it's unset, Enblend uses as many threads as there are CPUs. 🧡
  • OMP_DYNAMIC β€” this env var controls dynamic adjustment of the number of threads to use in executing OpenMP parallel regions. πŸ”„

πŸ‘‘ AUTHOR πŸ‘‘

Written by Andrew Mihal, Christoph Spiel and others. πŸ’œ


😭 REPORTING BUGS 😭

Report bugs at <https://bugs.launchpad.net/enblend>. (yes that's the link, go tell them, they wanna know 🫢)


Copyright Β© 2004-2009 Andrew Mihal. Copyright Β© 2009-2016 Christoph Spiel.

License GPLv2+: GNU GPL version 2 or later <http://www.gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


and that's a wrap bestie β€” this whole thing came to you straight from enblend 4.2, dated December 2025. go blend something iconic. πŸŽ€βœ¨πŸ’…

πŸ“¦ where this page comes from