



<!DOCTYPE html>
<html lang="en">
<head>
    <title>ImageMagick: JP2 Encoding Options</title>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <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-2016 ImageMagick Studio LLC"/>
  <meta name="distribution" content="Global"/>
  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
  <link rel="icon" href="../images/wand.png"/>
  <link rel="shortcut icon" href="../images/wand.ico"/>
  <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:900,400,400italic,700,700italic,300,300italic|Open+Sans:300italic,400italic,700italic,300,400,600,700">
  <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://www.imagemagick.org/script/search.php">Search</a>
      <a class="magick-nav-item pull-right" href="https://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://www.imagemagick.org/script/contact.php">Contact Us</a></p>
        <p><small>©  1999-2016 ImageMagick Studio LLC</small></p>
  </footer>
</div><!-- /.container -->

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