<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Source Allies Blog &#187; Image processing</title>
	<atom:link href="http://blogs.sourceallies.com/tag/image-processing/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.sourceallies.com</link>
	<description>Technical and process thinking from Source Allies employees</description>
	<lastBuildDate>Mon, 06 Feb 2012 17:40:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Image Processing Using ImageMagick and JMagick</title>
		<link>http://blogs.sourceallies.com/2009/10/image-processing-using-imagemagick-and-jmagick/</link>
		<comments>http://blogs.sourceallies.com/2009/10/image-processing-using-imagemagick-and-jmagick/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 00:02:08 +0000</pubDate>
		<dc:creator>Vaithi  Subramanian</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[Image processing]]></category>

		<guid isPermaLink="false">http://blogs.sourceallies.com/?p=58</guid>
		<description><![CDATA[Introduction to ImageMagick
ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction to ImageMagick</h2>
<p style="text-align: left">ImageMagick<a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;entry=78333969">®</a> is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of <a href="http://www.imagemagick.org/script/formats.php">formats</a> (over 100) including <a href="http://www.imagemagick.org/script/motion-picture.php">DPX</a>, <a href="http://www.imagemagick.org/script/high-dynamic-range.php">EXR</a>, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.<img class="aligncenter" src="http://www.imagemagick.org/image/logo.jpg" alt="" width="114" height="83" /></p>
<p>The functionality of ImageMagick is typically utilized from the command line. In this blog I am focussing on how to use Java with ImageMagick. There are two options available to use ImageMagick</p>
<p>1)      <a href="http://www.jmagick.org/">JMagick</a> provides an object-oriented Java interface to ImageMagick which I am going to show in this blog.</p>
<p>2)      Calling the ImagicMagick directly as the Command line using Runtime.<em>g</em><em>etRuntime</em>().exec(command);</p>
<p><strong>Jmagick</strong></p>
<p>JMagick is an open source Java interface of ImageMagick. It is implemented in the form of Java Native Interface (JNI) into the ImageMagick API.</p>
<p>JMagick does not attempt to make the ImageMagick API object-oriented. It is merely a thin interface layer into the ImageMagick API.<img class="aligncenter" src="http://www.jmagick.org/images/project-logo.png" alt="" width="216" height="76" /></p>
<p><strong>Image Conversion using </strong><strong>Jmagick</strong></p>
<p>This function shows how to convert one file format to other format mainly I am focusing on PDF to TIFF conversion. Conversion of PDF into multiple page TIFF  or single page TIFF and also the function is also extensible for accepting Compression Format such as GROUP4, FAX or JPEG.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> convert<span style="color: #009900;">&#40;</span><span style="color: #003399;">File</span> inputFile, <span style="color: #003399;">File</span> outputDirectory, ImageType outputType, <span style="color: #000066; font-weight: bold;">boolean</span> multiple<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>inputFile <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> inputFile.<span style="color: #006633;">exists</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> ImageUtil.<span style="color: #006633;">isValidMime</span><span style="color: #009900;">&#40;</span>inputFile<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
&nbsp;
ImageInfo info <span style="color: #339933;">=</span> getImageInfo<span style="color: #009900;">&#40;</span>inputFile<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">String</span> fileName <span style="color: #339933;">=</span> inputFile.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
fileName <span style="color: #339933;">=</span> inputFile.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>multiple<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
MagickImage image <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MagickImage<span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
MagickImage<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> imArray <span style="color: #339933;">=</span> image.<span style="color: #006633;">breakFrames</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> imArray.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
StringBuilder outputFile <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> StringBuilder<span style="color: #009900;">&#40;</span>outputDirectory.<span style="color: #006633;">getAbsolutePath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
outputFile.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">File</span>.<span style="color: #006633;">separatorChar</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">File</span> file <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">File</span><span style="color: #009900;">&#40;</span>outputFile.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
imArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">setFileName</span><span style="color: #009900;">&#40;</span>file.<span style="color: #006633;">getAbsolutePath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
imArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">writeImage</span><span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
&nbsp;
StringBuilder outputFile <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> StringBuilder<span style="color: #009900;">&#40;</span>outputDirectory.<span style="color: #006633;">getAbsolutePath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
outputFile.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">File</span>.<span style="color: #006633;">separatorChar</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
outputFile.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>fileName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
outputFile.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
outputFile.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>outputType.<span style="color: #006633;">name</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toLowerCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">File</span> file <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">File</span><span style="color: #009900;">&#40;</span>outputFile.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
report.<span style="color: #006633;">addOutputFile</span><span style="color: #009900;">&#40;</span>file<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
info.<span style="color: #006633;">setAdjoin</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
MagickImage image <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MagickImage<span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
image.<span style="color: #006633;">setFileName</span><span style="color: #009900;">&#40;</span>file.<span style="color: #006633;">getAbsolutePath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
image.<span style="color: #006633;">writeImage</span><span style="color: #009900;">&#40;</span>info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">private</span> ImageInfo getImageInfo<span style="color: #009900;">&#40;</span><span style="color: #003399;">File</span> inputName<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> MagickException <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003399;">String</span> density <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">getProperties</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>IMAGEMAGIC_DENSITY, <span style="color: #0000ff;">&quot;300&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
ImageInfo info <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ImageInfo<span style="color: #009900;">&#40;</span>inputName.<span style="color: #006633;">getAbsolutePath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
info.<span style="color: #006633;">setDensity</span><span style="color: #009900;">&#40;</span>density<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
info.<span style="color: #006633;">setCompression</span><span style="color: #009900;">&#40;</span>CompressionType.<span style="color: #006633;">Group4Compression</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
info.<span style="color: #006633;">setColorspace</span><span style="color: #009900;">&#40;</span>ColorspaceType.<span style="color: #006633;">RGBColorspace</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> info<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blogs.sourceallies.com/2009/10/image-processing-using-imagemagick-and-jmagick/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

