summaryrefslogtreecommitdiff
path: root/www/FAQ.html.orig
diff options
context:
space:
mode:
Diffstat (limited to 'www/FAQ.html.orig')
-rw-r--r--www/FAQ.html.orig799
1 files changed, 0 insertions, 799 deletions
diff --git a/www/FAQ.html.orig b/www/FAQ.html.orig
deleted file mode 100644
index 9fc668f..0000000
--- a/www/FAQ.html.orig
+++ /dev/null
@@ -1,799 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
-<title>GraphicsMagick FAQ</title>
-<link rel="stylesheet" href="docutils-articles.css" type="text/css" />
-</head>
-<body>
-
-<div class="banner">
-<img src="images/gm-107x76.png" alt="GraphicMagick logo" width="107" height="76" />
-<span class="title">GraphicsMagick</span>
-<form action="http://www.google.com/search">
- <input type="hidden" name="domains" value="www.graphicsmagick.org" />
- <input type="hidden" name="sitesearch" value="www.graphicsmagick.org" />
- <span class="nowrap"><input type="text" name="q" size="25" maxlength="255" />&nbsp;<input type="submit" name="sa" value="Search" /></span>
-</form>
-</div>
-
-<div class="navmenu">
-<ul>
-<li><a href="index.html">Home</a></li>
-<li><a href="project.html">Project</a></li>
-<li><a href="download.html">Download</a></li>
-<li><a href="README.html">Install</a></li>
-<li><a href="Hg.html">Source</a></li>
-<li><a href="NEWS.html">News</a> </li>
-<li><a href="utilities.html">Utilities</a></li>
-<li><a href="programming.html">Programming</a></li>
-<li><a href="reference.html">Reference</a></li>
-</ul>
-</div>
-<div class="document" id="graphicsmagick-faq">
-<h1 class="title">GraphicsMagick FAQ</h1>
-
-<!-- -*- mode: rst -*- -->
-<!-- This text is in reStucturedText format, so it may look a bit odd. -->
-<!-- See http://docutils.sourceforge.net/rst.html for details. -->
-<!-- URL links -->
-<div class="contents topic" id="faq-contents">
-<p class="topic-title first">FAQ Contents</p>
-<ul class="simple">
-<li><a class="reference internal" href="#how-does-graphicsmagick-differ-from-imagemagick" id="id1">How does GraphicsMagick differ from ImageMagick?</a></li>
-<li><a class="reference internal" href="#how-often-does-graphicsmagick-pick-up-new-code-from-imagemagick" id="id2">How often does GraphicsMagick pick up new code from ImageMagick?</a></li>
-<li><a class="reference internal" href="#are-there-any-plans-to-use-opencl-or-cuda-to-use-a-gpu" id="id3">Are there any plans to use OpenCL or CUDA to use a GPU?</a></li>
-<li><a class="reference internal" href="#what-is-the-meaning-of-magick" id="id4">What is the meaning of &quot;magick&quot;?</a></li>
-<li><a class="reference internal" href="#how-can-i-process-many-files-at-once" id="id5">How can I process many files at once?</a></li>
-<li><a class="reference internal" href="#i-received-the-following-message-delegation-failed-what-does-it-mean" id="id6">I received the following message, &quot;?????? delegation failed ...&quot;. What does it mean?</a></li>
-<li><a class="reference internal" href="#how-do-i-set-the-transparency-index-in-a-gif-image-so-it-displays-properly-within-mozilla" id="id7">How do I set the transparency index in a GIF image so it displays properly within Mozilla?</a></li>
-<li><a class="reference internal" href="#how-can-i-stop-the-filenames-from-changing-in-the-title-bar-of-the-animate-1-image-window" id="id8">How can I stop the filenames from changing in the title bar of the animate(1) image window?</a></li>
-<li><a class="reference internal" href="#the-image-grabbed-by-import-1-does-not-look-like-the-image-on-my-x-server-what-s-wrong" id="id9">The image grabbed by import(1) does not look like the image on my X server. What's wrong?</a></li>
-<li><a class="reference internal" href="#how-do-i-animate-a-digital-yuv-image-sequence" id="id10">How do I animate a digital YUV image sequence?</a></li>
-<li><a class="reference internal" href="#how-do-i-change-the-default-postscript-page-size" id="id11">How do I change the default <em>PostScript</em> page size?</a></li>
-<li><a class="reference internal" href="#i-get-a-memory-allocation-error-what-can-i-do" id="id12">I get a memory allocation error. What can I do?</a></li>
-<li><a class="reference internal" href="#how-do-i-concatenate-three-images-left-to-right-with-no-borders-frames-or-text" id="id13">How do I concatenate three images left-to-right with no borders, frames, or text?</a></li>
-<li><a class="reference internal" href="#how-do-i-create-a-gif-animation-sequence-to-display-within-firefox" id="id14">How do I create a GIF animation sequence to display within Firefox?</a></li>
-<li><a class="reference internal" href="#when-i-display-a-postscript-image-white-borders-are-trimmed" id="id15">When I display a <em>PostScript</em> image, white borders are trimmed.</a></li>
-<li><a class="reference internal" href="#what-are-visual-image-directories-how-do-i-use-them" id="id16">What are visual image directories? How do I use them?</a></li>
-<li><a class="reference internal" href="#how-can-i-include-the-window-frame-when-importing-a-window" id="id17">How can I include the window frame when importing a window?</a></li>
-<li><a class="reference internal" href="#i-displayed-an-image-and-it-appears-as-one-solid-color-what-did-i-do-wrong" id="id18">I displayed an image and it appears as one solid color. What did I do wrong?</a></li>
-<li><a class="reference internal" href="#i-received-the-following-message-library-is-not-available" id="id19">I received the following message, &quot;???? library is not available...&quot;.</a></li>
-<li><a class="reference internal" href="#i-want-to-inspect-the-values-of-the-matte-channel-within-my-image" id="id20">I want to inspect the values of the matte channel within my image.</a></li>
-<li><a class="reference internal" href="#how-can-i-add-one-of-those-cool-bevels-to-my-image-that-i-see-used-on-the-web" id="id21">How can I add one of those cool bevels to my image that I see used on the Web?</a></li>
-<li><a class="reference internal" href="#i-try-to-launch-display-from-my-window-manager-and-it-fails-what-s-up" id="id22">I try to launch display from my window manager and it fails. What's up?</a></li>
-<li><a class="reference internal" href="#how-can-i-make-postscript-text-look-good" id="id23">How can I make Postscript text look good?</a></li>
-<li><a class="reference internal" href="#how-can-i-annotate-an-image-with-text-that-is-2-to-3-inches-tall" id="id24">How can I annotate an image with text that is 2 to 3 inches tall?</a></li>
-<li><a class="reference internal" href="#how-can-i-convert-my-gif-animation-sequence-to-individual-image-files" id="id25">How can I convert my GIF animation sequence to individual image files?</a></li>
-<li><a class="reference internal" href="#how-can-i-remove-the-background-that-prints-around-my-image-when-i-display-it-with-firefox" id="id26">How can I remove the background that prints around my image when I display it with Firefox?</a></li>
-<li><a class="reference internal" href="#how-do-i-create-a-gif-or-png-image-with-web-safe-colors" id="id27">How do I create a GIF or PNG image with Web safe colors?</a></li>
-<li><a class="reference internal" href="#how-can-i-add-a-matte-layer-to-my-image" id="id28">How can I add a matte layer to my image?</a></li>
-<li><a class="reference internal" href="#how-can-i-draw-with-text-using-convert-under-windows-nt" id="id29">How can I draw with text using 'convert' under Windows NT?</a></li>
-<li><a class="reference internal" href="#why-are-my-jpeg-files-larger-than-expected" id="id30">Why are my JPEG files larger than expected?</a></li>
-<li><a class="reference internal" href="#how-do-i-extract-a-single-image-from-a-multi-image-file" id="id31">How do I extract a single image from a multi-image file?</a></li>
-<li><a class="reference internal" href="#how-can-i-extract-and-combine-cmyk-channels-in-a-cmyk-image" id="id32">How can I extract and combine CMYK channels in a CMYK image?</a></li>
-<li><a class="reference internal" href="#how-can-i-create-a-solid-or-patterned-canvas-image" id="id33">How can I create a solid or patterned canvas image?</a></li>
-<li><a class="reference internal" href="#what-does-identify-report" id="id34">What does <cite>identify</cite> report?</a></li>
-</ul>
-</div>
-<div class="section" id="how-does-graphicsmagick-differ-from-imagemagick">
-<h1><a class="toc-backref" href="#id1">How does GraphicsMagick differ from ImageMagick?</a></h1>
-<p><em>GraphicsMagick</em> is originally based on (forked from) ImageMagick
-5.5.2 in November 2002, from the version distributed by ImageMagick
-Studio LLC, which is itself forked in August 1999 from ImageMagick
-developed by E. I. du Pont de Nemours and Company starting in
-1992. Other than utilities being executed as sub-commands of the 'gm'
-command, the command-line syntax and programming APIs remain entirely
-upward compatible with ImageMagick 5.5.2. A better question might be
-&quot;<em>How does ImageMagick differ from ImageMagick?</em>&quot; since ImageMagick
-continues to alter and evolve its interfaces so they are no longer
-completely compatible with earlier versions. While GraphicsMagick also
-adds new features, it does so in a way which assures that existing
-features work as they did before. ImageMagick focuses on adding new
-functionality and features and has dramatically mutated several times
-since the fork.</p>
-<p>GraphicsMagick maintains a stable release branch, maintains a detailed
-ChangeLog, and maintains a stable source repository with complete version
-history so that changes are controlled, and changes between releases are
-accurately described. GraphicsMagick provides continued support for a
-release branch. ImageMagick does not offer any of these things.</p>
-<p>Since GraphicsMagick is more stable, more time has been spent optimizing
-and debugging its code.</p>
-<p>GraphicsMagick is much smaller than ImageMagick and has dramatically
-fewer dependencies on external libraries. For example, on the FreeBSD
-operating system, a fully-featured install of GraphicsMagick depends
-on 36 libraries whereas ImageMagick requires 64. GraphicsMagick's
-installation footprint is 3-5X smaller than ImageMagick.</p>
-<p>GraphicsMagick is usually faster than ImageMagick. The baseline execution
-overhead for simple commands is much lower, and GraphicsMagick is also
-more efficient at dealing with large images.</p>
-</div>
-<div class="section" id="how-often-does-graphicsmagick-pick-up-new-code-from-imagemagick">
-<h1><a class="toc-backref" href="#id2">How often does GraphicsMagick pick up new code from ImageMagick?</a></h1>
-<p>GraphicsMagick never picks up new code from ImageMagick as distributed
-by ImageMagick Studio LLC. Not long after the GraphicsMagick project
-was started in November 2002, ImageMagick from ImageMagick Studio LLC
-abandoned the MIT X11 style license it had been using since 1992, and
-switched between several different licenses until it ended up with one
-based on the Apache license, which is intended to penalize projects
-which borrow some of its source code, or fork from it. Since that
-time, GraphicsMagick has not incorporated any ImageMagick source code.</p>
-<p>On November 27, 2003 ImageMagick Studio LLC applied to register
-&quot;ImageMagick&quot; as its trademark, and it was awarded this registered
-trademark (serial number 78333969) on August 30, 2005. Those who
-re-distribute modified versions of &quot;ImageMagick&quot; (e.g. patched or
-improved) under license as &quot;ImageMagick&quot; now face the risk of
-arbitrary trademark infringement claims by ImageMagick Studio LLC.</p>
-<p>Authors of new features are encouraged to independently contribute
-their work to the GraphicsMagick project so that it can be released
-under GraphicsMagick's MIT X11 style license without additional
-encumberment. In order for a work to be accepted, it must have been
-developed entirely outside the ImageMagick source base to avoid any
-possibility of copyright taint.</p>
-</div>
-<div class="section" id="are-there-any-plans-to-use-opencl-or-cuda-to-use-a-gpu">
-<h1><a class="toc-backref" href="#id3">Are there any plans to use OpenCL or CUDA to use a GPU?</a></h1>
-<p>It is well known that some math-intensive algorithms run very quickly
-on video-card (and stand-alone) GPUs. Video card vendors encourage
-you to buy an expensive video card with quite a lot of installed RAM
-and modify applications to use the GPU via their proprietary or
-limited-purpose APIs. GPUs are quite effective at producing images
-for real-time display, such as for video games and virtual reality.
-GraphicsMagick has been significantly updated to use multiple CPU
-cores to speed up the image processing, and work continues to thread
-the few remaining algorithms, or remove inefficiencies in algorithms
-which don't see as much speed-up as they should. Linear speedup as
-cores are added is typical for CPU-bound algorithms on well-designed
-CPUs. Regardless, <a class="reference external" href="http://en.wikipedia.org/wiki/Amdal%27s_law">Amdahl's law</a> is a significant factor
-in GraphicsMagick, with non-parallelizable code paths often dominating
-the time.</p>
-<p>It is my belief that stand-alone GPUs are a poor design (expensive,
-inefficient, failure-prone, bandwidth bottlenecked, lack
-functionality, are insecure, and are not supported in servers) and
-that multi-core CPUs will ultimately prevail. Functionality which
-currently works best in a GPU will simply be integrated into
-tomorrow's multi-core CPUs and C compilers will naturally support that
-functionality. Once GPU capabilities are integrated into CPUs, there
-will be no more need to develop specialized code for a GPU. Today 16
-core CPUs are readily available for purchase in systems at reasonable
-prices, and this trend is certain to continue.</p>
-<p>Intel's <a class="reference external" href="http://en.wikipedia.org/wiki/Xeon_Phi">Xeon Phi</a> offers a
-61 core 'x86 CPU in a GPU-like plugin form-factor which provides over
-a TeraFLOP of performance. Being based on power-hungry plug-in cards,
-this solution suffers from many of the issues associated with GPUs.
-However, since it supports OpenMP, it may be a suitable target for
-executing some GraphicsMagick algorithms. Effective use of Xeon Phi
-currently requires use of Intel's development tools so from that
-standpoint it is not much more open than GPUs.</p>
-<p>Future multi-core CPUs will use a similar amount of power to today's
-CPUs, will idle at very low power consumption levels, and will fit
-into a very small chassis. Due to this trend, there is no value
-obtained by expending energy toward developing specialized code for
-today's GPUs.</p>
-</div>
-<div class="section" id="what-is-the-meaning-of-magick">
-<h1><a class="toc-backref" href="#id4">What is the meaning of &quot;magick&quot;?</a></h1>
-<p>According to the infamous British accultist <a class="reference external" href="http://en.wikipedia.org/wiki/Aleister_Crowley">Aleister Crowley</a>, the definition of
-<a class="reference external" href="http://en.wikipedia.org/wiki/Magick_(Aleister_Crowley)">magick</a> is
-&quot;the science and art of causing change to occur in conformity with the
-will&quot;.</p>
-</div>
-<div class="section" id="how-can-i-process-many-files-at-once">
-<h1><a class="toc-backref" href="#id5">How can I process many files at once?</a></h1>
-<p>Use 'gm mogrify'. The 'mogrify' subcommand is designed to operate on
-any number of files in one command. Normally 'mogrify' overwrites the
-input files but the <cite>-output-directory</cite> option (which must appear
-before any input file names!) allows sending the modified files to a
-different directory (which could be in a subdirectory). For example:</p>
-<pre class="literal-block">
-gm mogrify -output-directory .thumbs -resize 320x200 *.jpg
-</pre>
-<p>If you encounter command line length limitations then you can have
-GraphicsMagick expand the file list by quoting the wildcard argument
-to prevent it from being expanded by your command shell:</p>
-<pre class="literal-block">
-gm mogrify -output-directory .thumbs -resize 320x200 &quot;*.jpg&quot;
-</pre>
-<p>and you can also retrieve a list of files to process from a text file
-(e.g. named 'files.txt') like:</p>
-<pre class="literal-block">
-gm mogrify -output-directory .thumbs -resize 320x200 &#64;files.txt
-</pre>
-<p>where files.txt has one line per file name. If the input file paths
-contain relative sub-directory paths (e.g. &quot;foo/file1&quot;, &quot;bar/file2&quot;),
-you can instruct GraphicsMagick to create a similar subdirectory
-structure under the output directory by adding the
-<cite>-create-directories</cite> option:</p>
-<pre class="literal-block">
-gm mogrify -output-directory .thumbs -create-directories -resize 320x200 &#64;files.txt
-</pre>
-<p>Note that the algorithm used to generate output file names is quite
-simple. If -output-directory is &quot;/foo&quot; and the file path is
-&quot;bar/none.jpg&quot; then the final path will be &quot;foo/bar/none.jpg&quot;. Based
-on this it should be clear that when <cite>-output-directory</cite> is used, file
-paths should be relative paths rather than absolute paths or else the
-concatenation won't work.</p>
-</div>
-<div class="section" id="i-received-the-following-message-delegation-failed-what-does-it-mean">
-<h1><a class="toc-backref" href="#id6">I received the following message, &quot;?????? delegation failed ...&quot;. What does it mean?</a></h1>
-<p><em>GraphicsMagick</em> uses several freely available packages to perform the
-translation of certain image formats (<em>PostScript</em>, <em>MPEG</em>, etc.). Make
-sure these packages are available as described in the <a class="reference external" href="README.html">README</a> file. Also
-verify that you have plenty of temporary disk space. If not, set the
-MAGICK_TMPDIR (or TMPDIR) environment variable to an area where
-sufficient space is available. Finally, for <em>PostScript</em>, verify that
-Ghostscript supports the <em>pnmraw</em> or <em>ppmraw</em> device (<tt class="docutils literal">gs <span class="pre">-h</span></tt>) and that
-the document contains valid <em>PostScript</em> statements (<tt class="docutils literal">gs image.ps</tt>).</p>
-</div>
-<div class="section" id="how-do-i-set-the-transparency-index-in-a-gif-image-so-it-displays-properly-within-mozilla">
-<h1><a class="toc-backref" href="#id7">How do I set the transparency index in a GIF image so it displays properly within Mozilla?</a></h1>
-<p>Display your GIF image with <a class="reference external" href="display.html">display</a>. Choose <em>Matte</em> from the <em>Image
-Edit</em> command menu and identify a pixel that has the <em>transparency</em>
-color. Press <em>Method</em> and select a matte edit method from a pop-up menu.
-Choose from these methods:</p>
-<ul class="simple">
-<li>point</li>
-<li>replace</li>
-<li>floodfill</li>
-</ul>
-<p>The <em>point</em> method changes the matte value of any pixel selected with the
-pointer until the button is is released. The <em>replace</em> method changes the
-matte value of any pixel that matches the color of the pixel you select
-with a button press. <em>Floodfill</em> changes the matte value of any pixel
-that matches the color of the pixel you select with a button press and is
-a neighbor.</p>
-<p>Select your transparent pixel with the pointer and press a button. The
-image is redisplayed with any transparent pixels recolored to the
-background color. You can select other pixels or areas to force to
-transparent. When you are satisfied, press Return.</p>
-<p>Finally, choose <em>Save</em> from the command menu and write your GIF image to
-a file. <strong>Note that setting transparency works best on a TrueColor or
-DirectColor visual</strong>. If your server only exports colormapped visuals you
-will need to use a <em>Standard Colormap</em> to set transparency.</p>
-<pre class="literal-block">
-xstdcmap -best
-gm display -map list image.gif
-[ choose Matte Edit ]
-[ select your transparent pixel then press Return ]
-[ choose Save '
-</pre>
-<p>If you do not have the <em>xstdcmap(1)</em> program, try</p>
-<pre class="literal-block">
-gm display -visual TrueColor image.gif
-</pre>
-</div>
-<div class="section" id="how-can-i-stop-the-filenames-from-changing-in-the-title-bar-of-the-animate-1-image-window">
-<h1><a class="toc-backref" href="#id8">How can I stop the filenames from changing in the title bar of the animate(1) image window?</a></h1>
-<p><a class="reference external" href="animate.html">Animate</a> updates the image file name in the title bar of the image window
-as each image is displayed from the image sequence. To display just a
-single name that will not change, use <em>-title</em>:</p>
-<pre class="literal-block">
-gm animate -title &quot;My Image Sequence&quot; images.
-</pre>
-</div>
-<div class="section" id="the-image-grabbed-by-import-1-does-not-look-like-the-image-on-my-x-server-what-s-wrong">
-<h1><a class="toc-backref" href="#id9">The image grabbed by import(1) does not look like the image on my X server. What's wrong?</a></h1>
-<p>Use the <em>-descend</em> option:</p>
-<pre class="literal-block">
-gm import -descend image.miff
-</pre>
-<p>or set this X resource:</p>
-<pre class="literal-block">
-gm import.descend: True
-</pre>
-<p>By default, <a class="reference external" href="import.html">import</a> quickly grabs the image from the X server. However,
-it may not always have the correct colors in some areas. This can happen
-when a subwindow has a different colormap than its parent. With
-<em>-descend</em>, <a class="reference external" href="import.html">import</a> descends the window hierarchy. Descending involves
-grabbing the image and colormap of each window or subwindow associated
-with the window you select and compositing it on a blank canvas. This can
-be significantly slower than just grabbing the top-level window but
-ensures the correct image.</p>
-</div>
-<div class="section" id="how-do-i-animate-a-digital-yuv-image-sequence">
-<h1><a class="toc-backref" href="#id10">How do I animate a digital YUV image sequence?</a></h1>
-<p>Suppose your sequence is 72 352x240 frames titled frame0.Y, frame0.U,
-frame0.V, frame1.Y, frame1.U, etc. Use this command:</p>
-<pre class="literal-block">
-gm animate -geometry 352x240 -scene 0-71 yuv3:frame%d
-</pre>
-</div>
-<div class="section" id="how-do-i-change-the-default-postscript-page-size">
-<h1><a class="toc-backref" href="#id11">How do I change the default <em>PostScript</em> page size?</a></h1>
-<p>The default dimensions of a <em>PostScript</em> page is 612x792. If you prefer
-another default, change the page geometries (PSPageGeometry) in
-<cite>magick/image.h</cite> and recompile.</p>
-</div>
-<div class="section" id="i-get-a-memory-allocation-error-what-can-i-do">
-<h1><a class="toc-backref" href="#id12">I get a memory allocation error. What can I do?</a></h1>
-<p>Memory allocation is a complex topic in GraphicsMagick and image
-processing requires a lot of memory. GraphicsMagick tries to take best
-advantage of the resources available by optimizing its use of <em>virtual</em>
-memory. Virtual memory is normally the amount of RAM (Random Access
-Memory) available to the process plus the amount of free space in the
-system paging area (known as &quot;swap&quot; under Unix, or a &quot;page file&quot; under
-Windows). In addition to the RAM and the paging area, GraphicsMagick is
-able to expand the amount of virtual memory available by using
-memory-mapped files which cause the file to be treated as extra memory. A
-piece of hardware known as the Memory Management Unit (MMU) performs the
-magic which allows the system paging area and memory-mapped files to be
-treated as more memory by your system's CPU.</p>
-<p>Usually when a memory allocation error occurs, it is because the system's
-paging area is full, or the programs memory (heap) is fragmented badly
-enough that there is no large-enough block of memory available to satisfy
-the request. In some cases the operating system may artificially limit
-the memory available to the program. Failures of small memory allocations
-are generally considered fatal by GraphicsMagick. If it is impossible to
-allocate even a little bit of memory, then there is no point in
-continuing. When large memory allocations associated with allocating
-memory for image pixels fail, GraphicsMagick uses that as a key to know
-that it should start using memory-mapped temporary files to increase
-virtual memory. Under Unix and other POSIX-compliant systems, these
-memory-mapped temporary files are created in either the system default
-location (e.g. <cite>/var/tmp</cite>) or the directory set by the TMPDIR environment
-variable. Under Windows, temporary files are created in the directory set
-by the TEMP or TMP environment variable. Use the MAGICK_TMPDIR
-environment variable to specify a directory for GraphicsMagick to write
-its temporary files.</p>
-<p>If the temporary file directory is too small, or is itself mapped to the
-system's paging area (no win!), then GraphicsMagick will fail to allocate
-more virtual memory via the temporary file and will return an error.</p>
-<p>The single biggest factor in how much memory is required by
-GraphicsMagick is the QuantumDepth setting when it was compiled. The
-amount of memory (in bytes) required to store a single image in memory is
-may be calculated via the equation (QuantumDepth*Rows*Columns*5)/8. As a
-means of example, the following table shows the amount of memory consumed
-by a single 1024x768 image using the supported QuantumDepth settings:</p>
-<blockquote>
-<table border="1" class="docutils">
-<colgroup>
-<col width="46%" />
-<col width="54%" />
-</colgroup>
-<thead valign="bottom">
-<tr><th class="head">QuantumDepth</th>
-<th class="head">Virtual Memory</th>
-</tr>
-</thead>
-<tbody valign="top">
-<tr><td>8</td>
-<td>3MB</td>
-</tr>
-<tr><td>16</td>
-<td>8MB</td>
-</tr>
-<tr><td>32</td>
-<td>15MB</td>
-</tr>
-</tbody>
-</table>
-</blockquote>
-<p>Performing an image processing operation may require that several images
-be in memory at one time. In the case of animations, hundreds of images
-may be in memory at one time.</p>
-<p><em>GraphicsMagick</em> is designed to be general purpose. It can display many
-image storage formats (<em>Monochrome</em>, <em>PseudoColor</em>, or <em>TrueColor</em>) on
-many different types of X visuals (<em>StaticGray, StaticColor, PseudoColor,
-GrayScale, DirectColor,</em> or <em>TrueColor</em>). To support all these
-combinations of image storage formats and X visuals, extra memory is
-required. Additionally, <a class="reference external" href="animate.html">animate</a> and <a class="reference external" href="montage.html">montage</a> store an entire image
-sequence in memory.</p>
-<p>It is recommended that systems used to run <em>GraphicsMagick</em> have at least
-96MB of RAM and 140MB free in their paging area. Systems used to process
-large images (do the math!) may require considerably more memory to
-operate efficiently. GraphicsMagick is proven to be far more efficient at
-processing huge images when it is compiled as a 64-bit application on a
-64-bit capable CPU. RAM is typically 1000 times faster than disk, so it
-is important to keep as much data in RAM as possible (buy lots of RAM).
-The temporary file area should have plenty of free space. The size of the
-temporary file area is usually the deciding factor as to whether
-GraphicsMagick is able to complete an operation. With sufficient free
-disk space, GraphicsMagick is primarily limited by your CPU, your
-operating system's ability to address memory, and your degree of
-patience. GraphicsMagick has been used to process RGB images 64K by 64K
-pixels in size!</p>
-</div>
-<div class="section" id="how-do-i-concatenate-three-images-left-to-right-with-no-borders-frames-or-text">
-<h1><a class="toc-backref" href="#id13">How do I concatenate three images left-to-right with no borders, frames, or text?</a></h1>
-<p>Assume your three images are called image1.ppm, image2.ppm, and
-image3.ppm. Type</p>
-<pre class="literal-block">
-gm montage -mode concatenate -tile 3x1 image1.ppm image2.ppm \
- image3.ppm concatenated.miff
-</pre>
-<p>To concatenate the images top-to-bottom, use -tile 1x3.</p>
-<p>For more control over the placement of an image, use <a class="reference external" href="composite.html">composite</a>. First
-create a matte image and position your images onto the matte. For
-example,</p>
-<pre class="literal-block">
-gm convert -size 350x500 xc:black composite.miff
-gm composite -geometry +0+0 composite.miff image1.gif composite.miff
-gm composite -geometry &quot;+1&quot;00+0 composite.miff image2.gif composite.miff
-gm composite -geometry +0+300 composite.miff image3.gif composite.miff
-gm composite -geometry +0+375 composite.miff image4.gif composite.miff
-</pre>
-</div>
-<div class="section" id="how-do-i-create-a-gif-animation-sequence-to-display-within-firefox">
-<h1><a class="toc-backref" href="#id14">How do I create a GIF animation sequence to display within Firefox?</a></h1>
-<p>Use <a class="reference external" href="convert.html">convert</a> with the <em>-delay</em> and <em>-page</em> options. The <em>-delay</em> option
-is used to specify the delay in <em>1/100ths of a second</em> between the
-display of each frame of the animation. For example,</p>
-<pre class="literal-block">
-gm convert -delay 20 frame*.gif animation.gif
-</pre>
-<p>You can also declare specific delays for each frame of the image
-sequence. For example, if the delay was 20, 10, and 5, use</p>
-<pre class="literal-block">
-gm convert -delay 20 frame1.gif -delay 10 frame2.gif \
- -delay 5 frame3.gif animation.gif
-</pre>
-<p>Use <em>-page</em> to specify the <em>left</em> and <em>top</em> locations of the image frame</p>
-<pre class="literal-block">
-gm convert frame1.gif -page +50&quot;+1&quot;00 frame2.gif -page +0&quot;+1&quot;00 \
- frame3.gif animation.gif
-</pre>
-<p>Finally, if you want the image to loop within <em>FireFox</em>, use <em>-loop</em></p>
-<pre class="literal-block">
-gm convert -loop 50 frame*.gif animation.gif
-</pre>
-<p>Note, that all the images are composited into a single multi-image GIF
-animation. If you want a single image produced for each frame, use
-<em>+adjoin</em></p>
-<pre class="literal-block">
-gm convert +adjoin images.* frames%d.gif
-</pre>
-</div>
-<div class="section" id="when-i-display-a-postscript-image-white-borders-are-trimmed">
-<h1><a class="toc-backref" href="#id15">When I display a <em>PostScript</em> image, white borders are trimmed.</a></h1>
-<p><em>GraphicsMagick</em> automatically trims any <em>PostScript</em> image as defined by
-the bounding box. To preempt this behavior, remove the bounding box
-statement from the <em>Postscript</em> or explicitly set the page size. For
-example,</p>
-<pre class="literal-block">
-gm display -page letter image.ps
-</pre>
-</div>
-<div class="section" id="what-are-visual-image-directories-how-do-i-use-them">
-<h1><a class="toc-backref" href="#id16">What are visual image directories? How do I use them?</a></h1>
-<p>A visual image directory (VID) is an image that contains thumbnails of
-one or more images in a file directory. Rather than displaying each
-individual image at its full resolution, you can browse the visual image
-directory and choose an image to display. You can create a VID with
-either of these commands:</p>
-<pre class="literal-block">
-gm montage *.jpg directory.vid
-gm convert 'vid:*.jpg' directory.vid
-</pre>
-<p>Of course you can substitute any filenames you desire. <a class="reference external" href="montage.html">Montage</a> has many
-relevant command line options. You can exercise more control over the
-appearance of the VID than with <a class="reference external" href="convert.html">convert</a>.</p>
-<p>Next display the directory:</p>
-<pre class="literal-block">
-gm display directory.vid
-</pre>
-<p>Finally browse and select an image to display. Move the pointer to the
-image and press button 3.</p>
-<p>You can create the VID directory with this command:</p>
-<pre class="literal-block">
-gm display 'vid:*.jpg'
-</pre>
-<p>You can also select <em>Visual Image...</em> from the <em>File</em> menu of the command
-widget.</p>
-<p><em>Note, that creating a VID is time consuming</em>. Creating them on-the-fly
-within <a class="reference external" href="display.html">display</a> may be less convenient than using <a class="reference external" href="montage.html">montage</a> or <a class="reference external" href="convert.html">convert</a> .
-Also, if you create them with <a class="reference external" href="montage.html">montage</a>. or <a class="reference external" href="convert.html">convert</a>, you can reuse them
-as often as necessary.</p>
-<p>Note that a visual image directory is useful for looking at individual
-frames of an image sequence:</p>
-<pre class="literal-block">
-gm display vid:movie.mpg
-</pre>
-</div>
-<div class="section" id="how-can-i-include-the-window-frame-when-importing-a-window">
-<h1><a class="toc-backref" href="#id17">How can I include the window frame when importing a window?</a></h1>
-<p>I use the window ID reported by <em>xwininfo(1)</em> with import and it does not
-include the window manager frame as expected. How can I save the window
-with its frame?</p>
-<p>By default, <em>xwininfo(1)</em> returns the ID of the window you click on. Use
-the <em>-frame</em> option to get the reparented window ID:</p>
-<pre class="literal-block">
-xwininfo -frame
-</pre>
-<p>You can then use the returned window ID with <a class="reference external" href="import.html">import</a>:</p>
-<pre class="literal-block">
-gm import -frame -window ID window.miff
-</pre>
-</div>
-<div class="section" id="i-displayed-an-image-and-it-appears-as-one-solid-color-what-did-i-do-wrong">
-<h1><a class="toc-backref" href="#id18">I displayed an image and it appears as one solid color. What did I do wrong?</a></h1>
-<p>A blank image generally means that the image is either corrupt or it has
-a matte channel and the matte values are all zero. <em>GraphicsMagick</em>
-treats a matte value of zero as completely transparent. To determine if
-this is the problem, try</p>
-<pre class="literal-block">
-gm display +matte image.miff
-</pre>
-</div>
-<div class="section" id="i-received-the-following-message-library-is-not-available">
-<h1><a class="toc-backref" href="#id19">I received the following message, &quot;???? library is not available...&quot;.</a></h1>
-<p><em>GraphicsMagick</em> requires source libraries not included with the
-distribution to view or convert certain image formats such as JPEG or
-TIFF. The above message means you did not compile the required library
-and link with the <em>GraphicsMagick</em> utilities. See <a class="reference external" href="README.html">README</a> for the
-location of these libraries and compiling instructions.</p>
-</div>
-<div class="section" id="i-want-to-inspect-the-values-of-the-matte-channel-within-my-image">
-<h1><a class="toc-backref" href="#id20">I want to inspect the values of the matte channel within my image.</a></h1>
-<p>View the matte image as a gray scale image. Suppose you have a TIFF image
-that has a matte channel and is 640 pixels in width and 480 in height.
-Type:</p>
-<pre class="literal-block">
-gm convert image.tiff image.matte
-gm display -size 640x480 gray:image.matte
-</pre>
-</div>
-<div class="section" id="how-can-i-add-one-of-those-cool-bevels-to-my-image-that-i-see-used-on-the-web">
-<h1><a class="toc-backref" href="#id21">How can I add one of those cool bevels to my image that I see used on the Web?</a></h1>
-<p>There are four types of ornamental borders you can add to your image
-with GraphicsMagick. Each is listed below with the procedure to use
-them with your image.</p>
-<ul>
-<li><p class="first">Surround the image with a border of color</p>
-<p>Use -border followed by the width and height of the border. Set the
-color of the border with -bordercolor. For example, to surround your
-image with a red border that is 25 pixels wide on each side, use</p>
-<pre class="literal-block">
-gm convert -bordercolor red -border 25x25 image.jpg image.gif
-</pre>
-</li>
-<li><p class="first">Lighten or darken image edges to create a 3-D effect</p>
-<p>Use -raise followed by the width of the image edge. For example, to
-create a raised edge effect of 25 pixels, use</p>
-<pre class="literal-block">
-gm convert -raise 25 image.jpg image.gif
-</pre>
-</li>
-<li><p class="first">Surround the image with an ornamental frame</p>
-<p>Use -frame followed by the width and height of the frame. Set the
-color of the border with -mattecolor. For example, to surround your
-image with a gray frame that is 25 pixels wide on each side, use</p>
-<pre class="literal-block">
-gm convert -mattecolor gray -frame 25x25 image.jpg image.gif
-</pre>
-</li>
-<li><p class="first">Surround the image with a raised or sunken bevel</p>
-<p>Use -frame followed by the width and height of the bevel. Set the
-color of the border with -mattecolor. This is just like the
-description above except you specify a bevel width that matches the
-frame width. For example, to surround your image with a gray bevel
-that is 25 pixels wide on each side, use</p>
-<pre class="literal-block">
-gm convert -mattecolor gray -frame 25x25+0+25 image.jpg image.gif
-gm convert -mattecolor gray -frame 25x25+25+0 image.jpg image.gif
-</pre>
-</li>
-</ul>
-</div>
-<div class="section" id="i-try-to-launch-display-from-my-window-manager-and-it-fails-what-s-up">
-<h1><a class="toc-backref" href="#id22">I try to launch display from my window manager and it fails. What's up?</a></h1>
-<p><a class="reference external" href="display.html">Display</a> determines if it is executing interactively and behaves
-differently depending on the result. To convince display &lt;display.html&gt;
-you are running in an interactive environment when launching from a
-window manager, use either of</p>
-<pre class="literal-block">
-display logo:Untitled
-display &lt; /dev/console
-</pre>
-<p>Note that this issue no longer exists as of GraphicsMagick 1.2.</p>
-</div>
-<div class="section" id="how-can-i-make-postscript-text-look-good">
-<h1><a class="toc-backref" href="#id23">How can I make Postscript text look good?</a></h1>
-<p>Simple. Increase the dots-per-inch when converting and sub-sample:</p>
-<pre class="literal-block">
-gm convert -density 288 -geometry 25% image.ps image.gif
-</pre>
-<p>Change the density to 144 and geometry to 50% if the above command fails
-due to insufficient memory. Alternatively, see the Ghostscript
-documentation about using high-quality fonts.</p>
-<p>The -density option increases the number of pixels (or dots) generated by
-Ghostscript when processing the input postscript file. However as all
-other images formats are generally displayed on screens which are
-typically about 72 to 100 dots per inch, the output image will be larger.</p>
-<p>The <em>-geometry</em> option reduces the large image output of ghostscript
-image back to a normal 72 dpi resolution (25% of 288 dpi gives 72 dpi)
-but in the process anti-aliases (or smooths) the fonts and lines of the
-image so as to remove the jaggies you would otherwise get from a normal
-postscript to image conversion.</p>
-</div>
-<div class="section" id="how-can-i-annotate-an-image-with-text-that-is-2-to-3-inches-tall">
-<h1><a class="toc-backref" href="#id24">How can I annotate an image with text that is 2 to 3 inches tall?</a></h1>
-<p>If you do not access to a particular named font that is large, try
-scalable fonts. First see if you have any scalable fonts. Type</p>
-<pre class="literal-block">
-xlsfonts -fn '*-0-0-0-0-*'
-</pre>
-<p>Or if you are using <a class="reference external" href="display.html">display</a>, use the font pattern above within the Font
-Browser (see Image Edit-&gt;Annotate). Next substitute the appropriate
-resolution. Keep in mind that a scalable font must be fully qualified to
-work. That is, all 14 fields must be specified. Here is one example where
-we annotate an image with large <em>Helvetica</em> text:</p>
-<pre class="literal-block">
-gm convert -font '-*-helvetica-*-*-*--300-300-*-*-*-*-iso8859-1' \
- -fill green -draw 'text 50,300 Magick' image.gif annotated.gif
-</pre>
-<p>If you have the FreeType support built into GraphicsMagick, just
-increase your pointsize and/or density:</p>
-<pre class="literal-block">
-gm convert -font Helvetica -pointsize 100 -density 300 ...
-</pre>
-</div>
-<div class="section" id="how-can-i-convert-my-gif-animation-sequence-to-individual-image-files">
-<h1><a class="toc-backref" href="#id25">How can I convert my GIF animation sequence to individual image files?</a></h1>
-<p>Use the scene embedded file format with <a class="reference external" href="convert.html">convert</a>:</p>
-<pre class="literal-block">
-gm convert animation.gif +adjoin frame%02d.gif
-</pre>
-<p>The resulting image files are titled frame01.gif, frame02.gif,
-frame03.gif, etc.</p>
-</div>
-<div class="section" id="how-can-i-remove-the-background-that-prints-around-my-image-when-i-display-it-with-firefox">
-<h1><a class="toc-backref" href="#id26">How can I remove the background that prints around my image when I display it with Firefox?</a></h1>
-<p>Use the +page option of the <a class="reference external" href="convert.html">convert</a> command:</p>
-<pre class="literal-block">
-gm convert +page alpha.gif beta.gif
-</pre>
-<p>GIF allows for a page offset relative to some background. The page
-offset information may have been in your GIF image already or it
-could have been introduced by GraphicsMagick. Either way, +page
-removes the unwanted page offset and FireFox should behave as
-expected.</p>
-</div>
-<div class="section" id="how-do-i-create-a-gif-or-png-image-with-web-safe-colors">
-<h1><a class="toc-backref" href="#id27">How do I create a GIF or PNG image with Web safe colors?</a></h1>
-<p>Web safe colors are not normally needed any more since almost all
-computers now have true color displays. However, this FAQ may still be
-useful since it demonstrates how a colormap from an image may be
-applied to another image..</p>
-<p>Use the -map option of the <a class="reference external" href="convert.html">convert</a> command:</p>
-<pre class="literal-block">
-gm convert -map netscape: alpha.gif beta.gif
-</pre>
-<p>Netscape predefines 216 colors for colormapped displays. Use the above
-command to ensure only these predefined colors are used. Otherwise
-Netscape dithers your image with varying degrees of image fidelity.</p>
-</div>
-<div class="section" id="how-can-i-add-a-matte-layer-to-my-image">
-<h1><a class="toc-backref" href="#id28">How can I add a matte layer to my image?</a></h1>
-<p>One way is to use a bitmap as your transparency mask First, use the
--matte option to add an all-opaque opacity channel, then use the
-composite utility to copy the graylevel samples from the mask file
-into your new opacity channel:</p>
-<pre class="literal-block">
-gm convert image.gif -matte temp.miff
-gm composite -compose CopyOpacity mask.xbm temp.miff transparent.gif
-</pre>
-<p>Note, GIF is limited to one transparent color. If your mask has
-variable opacity, use a format like MIFF, TIFF, or PNG as your output
-image format.</p>
-</div>
-<div class="section" id="how-can-i-draw-with-text-using-convert-under-windows-nt">
-<h1><a class="toc-backref" href="#id29">How can I draw with text using 'convert' under Windows NT?</a></h1>
-<p>The problem is that NT interprets the command line differently than
-Unix does, causing the documented command to fail. The following
-command has been reported to work correctly (all on one line):</p>
-<pre class="literal-block">
-gm convert -font Arial -fill blue -draw &quot;text 10,10 'your text here'&quot; \
- d:\test.tif png:d:\test.png
-</pre>
-<p>and here is another example which is reported to work (which relies
-on Ghostscript's 'gs' program to installed):</p>
-<pre class="literal-block">
-gm convert.exe -pointsize 18 -draw &quot;text 0,0 &quot;This is my text!&quot;&quot; \
- C:\blank.gif c:\text.gif
-</pre>
-</div>
-<div class="section" id="why-are-my-jpeg-files-larger-than-expected">
-<h1><a class="toc-backref" href="#id30">Why are my JPEG files larger than expected?</a></h1>
-<p>Your JPEG files may contain embedded &quot;profiles&quot; such as Exif or IPTC,
-or they may contain uncompressed thumbnails. You can use the <cite>+profile
-&quot;*&quot;</cite> commandline option or an equivalent API method to remove them.</p>
-</div>
-<div class="section" id="how-do-i-extract-a-single-image-from-a-multi-image-file">
-<h1><a class="toc-backref" href="#id31">How do I extract a single image from a multi-image file?</a></h1>
-<p>Use a square-bracket syntax to indicate which frame or frames you
-want. For example,</p>
-<pre class="literal-block">
-gm convert &quot;Image.gif[0]&quot; first.gif
-</pre>
-<p>Will extract the first image (scene 0) from a GIF animation. Be sure
-to surround the file specification with quotation marks, to prevent
-the shell from interpreting the square brackets.</p>
-</div>
-<div class="section" id="how-can-i-extract-and-combine-cmyk-channels-in-a-cmyk-image">
-<h1><a class="toc-backref" href="#id32">How can I extract and combine CMYK channels in a CMYK image?</a></h1>
-<p>GraphicsMagick 1.2.2 and later support combining multiple channels in of
-any image file format in order to create a CMYK image file. For example,
-starting with a CMYK JPEG file, we can create a set of separate files
-with one file per channel:</p>
-<pre class="literal-block">
-gm convert cmyk.jpg -channel cyan cyan.tiff
-gm convert cmyk.jpg -channel magenta magenta.tiff
-gm convert cmyk.jpg -channel yellow yellow.tiff
-gm convert cmyk.jpg -channel black black.tiff
-</pre>
-<p>and then we can join them back together:</p>
-<pre class="literal-block">
-gm composite -compose CopyMagenta magenta.tiff cyan.tiff result.tiff
-gm composite -compose CopyYellow yellow.tiff result.tiff result.tiff
-gm composite -compose CopyBlack black.tiff result.tiff result.tiff
-</pre>
-<p>Perhaps it is possible to accomplish this in one composite command. We
-will leave that as an exercise for later. Note that it is possible to
-extract just one channel, manipulate it, and then insert it back into the
-original image file.</p>
-<p>There is also built-in support for a <em>Partition</em> interlace format which
-can split to a set of files, and join a set of files, but the only
-supported format is a raw format which is not easy to deal with.</p>
-</div>
-<div class="section" id="how-can-i-create-a-solid-or-patterned-canvas-image">
-<h1><a class="toc-backref" href="#id33">How can I create a solid or patterned canvas image?</a></h1>
-<p>Canvas images may be created using the 'XC:' or 'TILE:' pseudo-image
-formats. XC produces solid color images based on an color you specify
-while TILE produces a tiled image based on an an image you specify. Both
-of these require that the desired size be specified, and the desired
-image type may be specified as well.</p>
-<p>To create a solid red canvas image:</p>
-<pre class="literal-block">
-gm convert -size 640x480 xc:red canvas.tiff
-</pre>
-<p>or using hex syntax to specify the color:</p>
-<pre class="literal-block">
-gm convert -size 640x480 &quot;xc:#f00&quot; canvas.tiff
-</pre>
-<p>To create a solid red canvas image using truecolor pixels:</p>
-<pre class="literal-block">
-gm convert -size 640x480 -type TrueColor xc:red canvas.tiff
-</pre>
-<p>To create a patterned canvas image using a built-in crosshatch pattern:</p>
-<pre class="literal-block">
-gm convert -size 640x480 tile:image:CROSSHATCH45 canvas.tiff
-</pre>
-<p>To create a patterned canvas image using a user-supplied image:</p>
-<pre class="literal-block">
-gm convert -size 640x480 tile:myimage.tiff canvas.tiff
-</pre>
-</div>
-<div class="section" id="what-does-identify-report">
-<h1><a class="toc-backref" href="#id34">What does <cite>identify</cite> report?</a></h1>
-<p>GraphicsMagick is sophisticated image handling software supporting
-perhaps a hundred formats, and hundreds of subformats, yet it needs to
-be able to apply image processing algorithms in a consistent way, and
-save to many output formats. Some image types are radically different
-from others. Due to this, GraphicsMagick normalizes images it reads
-into only nine internal in-memory formats (see the description of
--type) which are a specialization of just two internal formats. The
-<cite>identify</cite> command reports the characteristics of one of those
-internal formats rather than the genuine properties of the input image
-file. In fact, if the properties of all the input files were to be
-reported, it would require a book to describe all of the properties.
-For example, the WMF vector-drawing format is much different from the
-PNG image file format, yet GraphicsMagick can read both.</p>
-<p>Only limited original properties are preserved, and it depends on how
-GraphicsMagick was built. For example, a &quot;Q8&quot; build can only report
-up to a depth of 8 bits, but a &quot;Q32&quot; build can report a depth of up to
-32 bits. The original image depth is reported if it is at least 8
-bits, and equal to or less than the build depth.</p>
-<p>By default <cite>identify</cite> reports only the most basic properties:</p>
-<pre class="literal-block">
-% gm identify seaworld.jpg
-seaworld.jpg JPEG 1530x1020+0+0 DirectClass 8-bit 204.0K 0.000u 0:01
-</pre>
-<p>but with -verbose it can report on a large number of properties.</p>
-<hr class="docutils" />
-<p>Copyright © GraphicsMagick Group 2002 - 2020</p>
-</div>
-</div>
-</body>
-</html>