



<!DOCTYPE html>
<html lang="en">
<head>
  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
    <title>ImageMagick: JP2 Encoding Options</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  <meta name="application-name" content="ImageMagick"/>
  <meta name="description" content="ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves."/>
  <meta name="application-url" content="http://www.imagemagick.org"/>
  <meta name="generator" content="PHP"/>
  <meta name="keywords" content="jp2, encoding, options, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/>
  <meta name="rating" content="GENERAL"/>
  <meta name="robots" content="INDEX, FOLLOW"/>
  <meta name="generator" content="ImageMagick Studio LLC"/>
  <meta name="author" content="ImageMagick Studio LLC"/>
  <meta name="revisit-after" content="2 DAYS"/>
  <meta name="resource-type" content="document"/>
  <meta name="copyright" content="Copyright (c) 1999-2015 ImageMagick Studio LLC"/>
  <meta name="distribution" content="Global"/>
  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"/>
  <link rel="stylesheet" href="css/magick.css"/>
</head>
<body>
<div class="main">
<div class="magick-masthead">
  <div class="container">
    <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
         style="display:block"
         data-ad-client="ca-pub-3129977114552745"
         data-ad-slot="6345125851"
         data-ad-format="auto"></ins>
    <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    <nav class="magick-nav">
      <a class="magick-nav-item " href="../index.html">Home</a>
      <a class="magick-nav-item " href="binary-releases.html">Download</a>
      <a class="magick-nav-item " href="command-line-tools.html">Tools</a>
      <a class="magick-nav-item " href="command-line-processing.html">Command-line</a>
      <a class="magick-nav-item " href="resources.html">Resources</a>
      <a class="magick-nav-item " href="api.html">Develop</a>
      <a class="magick-nav-item " href="http://nextgen.imagemagick.org/script/search.php">Search</a>
      <a class="magick-nav-item pull-right" href="http://www.imagemagick.org/discourse-server/">Community</a>
    </nav>
  </div>
</div>
<div class="container">
<div class="magick-header">

<p class="lead magick-description">ImageMagick's JPEG-2000 image formats, JP2 and JPC, accept a plethora of encoding options as detailed below.  As an example, suppose you are interested in these options:</p>

<ul>
<li>code blocks are 64 samples in width and 32 samples in height</li>
<li>no multicomponent transform</li>
<li>4 resolution levels for each component</li>
<li>compression is lossy at 64:1</li>
</ul>

<p>Use this command to convert a JPEG-2000 image to the PNG image format:</p>

<pre>
convert wizard.jp2 wizard.png
</pre>

<p>Let's convert a JPEG image to a lossless JPEG-2000 image:</p>

<pre>
convert wizard.jpg -quality 0 wizard.jp2
</pre>

<p>Here we extract an area from the image:</p>

<pre>
convert 'wizard.jp2[640x480+0+0]' wizard.png
</pre>

<p>Extract a particular tile from the image:</p>

<pre>
convert 'wizard.jp2[2]' wizard.png
</pre>

<p>Specify a subsampling factor:</p>

<pre>
convert wizard.png -colorspace YUV -sampling-factor 2,2 wizard.jp2
</pre>

<p>Save a tiled JPEG-2000 image:</p>

<pre>
convert wizard.png 'wizard.png[512x512]'
</pre>

<p>Write a digital Cinema 4K profile compliant codestream:</p>

<pre>
convert wizard.png -resize 4096x2160! -depth 12 wizard.jp2
</pre>

<p>Here is a complete list of JPEG-2000 decoding options:</p>

<div class="table-responsive">
<table class="table table-condensed table-striped">
  <tr>
    <td>jp2:layer-number=<var>x</var></td>
    <td>set the maximum number of quality layers to decode.</td>
  </tr>
  <tr>
    <td>jp2:reduce-factor=<var>x</var></td>
    <td>set the number of highest resolution levels to be discarded.</td>
  </tr>
</table></div>

<p>Here is a complete list of JPEG-2000 encoding options:</p>

<div class="table-responsive">
<table class="table table-condensed table-striped">
  <tr>
    <dt>jp2:number-resolutions=<var>x</var></dt>
    <dd>number of resolutions to encode.</dd>
  </tr>
  <tr>
    <td>jp2:quality=<var>x</var>,<var>x</var>,...</td>
    <td>set the quality layer PSNR, given in dB. The order is from left to right in ascending order. The default is a single lossless quality layer.</td>
  </tr>
  <tr>
    <td>jp2:rate=<var>x</var>,<var>x</var>,...</td>
    <td>the compression ratio values. Each value is a factor of compression, thus 20 means 20 times compressed. The order is from left to right in descending order. A final lossless quality layer is signified by the value 1. The default is a single lossless quality layer.</td>
  </tr>
  <tr>
    <td>jp2:progression-order=<var>x</var></td>
    <td>choose from LRCP, RLCP, RPCL, PCRL or CPRL.</td>
  </tr>
</table></div>
</div>
  <footer class="magick-footer">
    <p><a href="support.html">Donate</a> •
     <a href="sitemap.html">Sitemap</a> •
    <a href="links.html">Related</a> •
    <a href="architecture.html">Architecture</a>
</p>
    <p><a href="jp2.html#">Back to top</a> •
    <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
    <a href="http://nextgen.imagemagick.org/script/contact.php">Contact Us</a></p>
        <p><small>©  1999-2015 ImageMagick Studio LLC</small></p>
  </footer>
</div><!-- /.container -->

  <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://nextgen.imagemagick.org/js/magick.html"></script>
</div>
</body>
</html>
