<!-- Copyright 2008 Lubomir Bourdev and Hailin Jin

     Distributed under the Boost Software License, Version 1.0.
     (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
  -->

<!--
    Copyright 2005-2007 Adobe Systems Incorporated
    Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
    or a copy at http://stlab.adobe.com/licenses.html)

    Some files are held under additional license.
    Please see "http://stlab.adobe.com/licenses.html" for more information.
-->

<!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" lang="en" xml:lang="en">

<head>
    <TITLE>Generic Image Library: jpeg_dynamic_io.hpp Source File</TITLE>
    <META HTTP-EQUIV="content-type" CONTENT="text/html;charset=ISO-8859-1"/>
    <LINK TYPE="text/css" REL="stylesheet" HREF="adobe_source.css"/>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0" style='width: 100%; margin: 0; padding: 0'><tr>
<td width="100%" valign="top" style='padding-left: 10px; padding-right: 10px; padding-bottom: 10px'>
<div class="qindex"><a class="qindex" href="index.html">Modules</a> 
                  | <a class="qindex" href="classes.html">Alphabetical List</a> 
                  | <a class="qindex" href="annotated.html">Class List</a> 
                  | <a class="qindex" href="dirs.html">Directories</a> 
                  | <a class="qindex" href="files.html">File List</a> 
                  | <a class="qindex" href="../index.html">GIL Home Page</a> 
</div>
<!-- End Header -->
<!-- Generated by Doxygen 1.5.6 -->
  <div class="navpath"><a class="el" href="g_i_l_0076.html">boost</a>&nbsp;&raquo&nbsp;<a class="el" href="g_i_l_0079.html">gil</a>&nbsp;&raquo&nbsp;<a class="el" href="g_i_l_0078.html">extension</a>&nbsp;&raquo&nbsp;<a class="el" href="g_i_l_0077.html">io</a>
  </div>
<div class="contents">
<h1>jpeg_dynamic_io.hpp</h1><a href="g_i_l_0232.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright 2005-2007 Adobe Systems Incorporated</span>
<a name="l00003"></a>00003 <span class="comment">   </span>
<a name="l00004"></a>00004 <span class="comment">    Use, modification and distribution are subject to the Boost Software License,</span>
<a name="l00005"></a>00005 <span class="comment">    Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at</span>
<a name="l00006"></a>00006 <span class="comment">    http://www.boost.org/LICENSE_1_0.txt).</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">    See http://opensource.adobe.com/gil for most recent version including documentation.</span>
<a name="l00009"></a>00009 <span class="comment">*/</span>
<a name="l00010"></a>00010 
<a name="l00011"></a>00011 <span class="comment">/*************************************************************************************************/</span>
<a name="l00012"></a>00012 
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef GIL_JPEG_DYNAMIC_IO_H</span>
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define GIL_JPEG_DYNAMIC_IO_H</span>
<a name="l00015"></a>00015 <span class="preprocessor"></span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;boost/mpl/bool.hpp&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;boost/shared_ptr.hpp&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "../dynamic_image/dynamic_image_all.hpp"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="io__error_8hpp.html" title="Handle input-output errors.">io_error.hpp</a>"</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="jpeg__io_8hpp.html" title="Support for reading and writing JPEG files Requires libjpeg.">jpeg_io.hpp</a>"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="g_i_l_0235.html" title="Internal support for reading and writing JPEG files.">jpeg_io_private.hpp</a>"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="g_i_l_0085.html" title="Generic io functions for dealing with dynamic images.">dynamic_io.hpp</a>"</span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="keyword">namespace </span>boost { <span class="keyword">namespace </span>gil {
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 <span class="keyword">namespace </span>detail {
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="keyword">struct </span>jpeg_write_is_supported {
<a name="l00040"></a>00040     <span class="keyword">template</span>&lt;<span class="keyword">typename</span> View&gt; <span class="keyword">struct </span>apply
<a name="l00041"></a>00041         : <span class="keyword">public</span> mpl::bool_&lt;jpeg_write_support&lt;View&gt;::is_supported&gt; {};
<a name="l00042"></a>00042 };
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="keyword">class </span>jpeg_writer_dynamic : <span class="keyword">public</span> jpeg_writer {
<a name="l00045"></a>00045     <span class="keywordtype">int</span> _quality;
<a name="l00046"></a>00046 <span class="keyword">public</span>:    
<a name="l00047"></a>00047     jpeg_writer_dynamic(FILE* file,           <span class="keywordtype">int</span> quality=100) : jpeg_writer(file)    , _quality(quality) {}
<a name="l00048"></a>00048     jpeg_writer_dynamic(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> quality=100) : jpeg_writer(filename), _quality(quality) {}
<a name="l00049"></a>00049 
<a name="l00050"></a>00050     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Views&gt;
<a name="l00051"></a>00051     <span class="keywordtype">void</span> write_view(<span class="keyword">const</span> any_image_view&lt;Views&gt;&amp; runtime_view) {
<a name="l00052"></a>00052         dynamic_io_fnobj&lt;jpeg_write_is_supported, jpeg_writer&gt; op(<span class="keyword">this</span>);
<a name="l00053"></a>00053         <a class="code" href="group___variant.html#g3dc0a90911c08815be11e1e49ec06037" title="Invokes a generic constant operation (represented as a binary function object) on...">apply_operation</a>(runtime_view,op);
<a name="l00054"></a>00054     }
<a name="l00055"></a>00055 };
<a name="l00056"></a>00056 
<a name="l00057"></a>00057 <span class="keyword">class </span>jpeg_type_format_checker {
<a name="l00058"></a>00058     J_COLOR_SPACE _color_type;
<a name="l00059"></a>00059 <span class="keyword">public</span>:
<a name="l00060"></a>00060     jpeg_type_format_checker(J_COLOR_SPACE color_type_in) :
<a name="l00061"></a>00061         _color_type(color_type_in) {}
<a name="l00062"></a>00062     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Image&gt;
<a name="l00063"></a>00063     <span class="keywordtype">bool</span> apply() {
<a name="l00064"></a>00064         <span class="keywordflow">return</span> jpeg_read_support&lt;typename Image::view_t&gt;::color_type==_color_type;
<a name="l00065"></a>00065     }
<a name="l00066"></a>00066 };
<a name="l00067"></a>00067 
<a name="l00068"></a>00068 <span class="keyword">struct </span>jpeg_read_is_supported {
<a name="l00069"></a>00069     <span class="keyword">template</span>&lt;<span class="keyword">typename</span> View&gt; <span class="keyword">struct </span>apply
<a name="l00070"></a>00070         : <span class="keyword">public</span> mpl::bool_&lt;jpeg_read_support&lt;View&gt;::is_supported&gt; {};
<a name="l00071"></a>00071 };
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 <span class="keyword">class </span>jpeg_reader_dynamic : <span class="keyword">public</span> jpeg_reader {
<a name="l00074"></a>00074 <span class="keyword">public</span>:
<a name="l00075"></a>00075     jpeg_reader_dynamic(FILE* file)           : jpeg_reader(file)    {}
<a name="l00076"></a>00076     jpeg_reader_dynamic(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename) : jpeg_reader(filename){}
<a name="l00077"></a>00077         
<a name="l00078"></a>00078     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Images&gt;
<a name="l00079"></a>00079     <span class="keywordtype">void</span> read_image(any_image&lt;Images&gt;&amp; im) {
<a name="l00080"></a>00080         <span class="keywordflow">if</span> (!construct_matched(im,detail::jpeg_type_format_checker(_cinfo.out_color_space))) {
<a name="l00081"></a>00081             io_error(<span class="stringliteral">"jpeg_reader_dynamic::read_image(): no matching image type between those of the given any_image and that of the file"</span>);
<a name="l00082"></a>00082         } <span class="keywordflow">else</span> {
<a name="l00083"></a>00083             im.recreate(get_dimensions());
<a name="l00084"></a>00084             dynamic_io_fnobj&lt;jpeg_read_is_supported, jpeg_reader&gt; op(<span class="keyword">this</span>);
<a name="l00085"></a>00085             <a class="code" href="group___variant.html#g3dc0a90911c08815be11e1e49ec06037" title="Invokes a generic constant operation (represented as a binary function object) on...">apply_operation</a>(<a class="code" href="g_i_l_0135.html#g55e45a15dddfc0d870c2f7fb9739cb2e" title="Returns the non-constant-pixel view of any image. The returned view is any view.">view</a>(im),op);
<a name="l00086"></a>00086         }
<a name="l00087"></a>00087     }
<a name="l00088"></a>00088 };
<a name="l00089"></a>00089 
<a name="l00090"></a>00090 } <span class="comment">// namespace detail</span>
<a name="l00091"></a>00091 
<a name="l00092"></a>00092 
<a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Images&gt;
<a name="l00099"></a><a class="code" href="g_i_l_0169.html#ga8d0be11619e190cef13ab79d7169398">00099</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="g_i_l_0169.html#g02171bdd359b1fb5fc89ad34a0732494" title="Allocates a new image whose dimensions are determined by the given jpeg image file...">jpeg_read_image</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename,<a class="code" href="g_i_l_0018.html" title="Represents a run-time specified image. Note it does NOT model ImageConcept.">any_image&lt;Images&gt;</a>&amp; im) {
<a name="l00100"></a>00100     detail::jpeg_reader_dynamic m(filename);
<a name="l00101"></a>00101     m.read_image(im);
<a name="l00102"></a>00102 }
<a name="l00103"></a>00103 
<a name="l00106"></a>00106 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Images&gt;
<a name="l00107"></a><a class="code" href="g_i_l_0169.html#g4a8b5d2fd1fa5965dd12c20f8b983458">00107</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="g_i_l_0169.html#g02171bdd359b1fb5fc89ad34a0732494" title="Allocates a new image whose dimensions are determined by the given jpeg image file...">jpeg_read_image</a>(<span class="keyword">const</span> std::string&amp; filename,<a class="code" href="g_i_l_0018.html" title="Represents a run-time specified image. Note it does NOT model ImageConcept.">any_image&lt;Images&gt;</a>&amp; im) {
<a name="l00108"></a>00108     <a class="code" href="g_i_l_0169.html#g02171bdd359b1fb5fc89ad34a0732494" title="Allocates a new image whose dimensions are determined by the given jpeg image file...">jpeg_read_image</a>(filename.c_str(),im);
<a name="l00109"></a>00109 }
<a name="l00110"></a>00110 
<a name="l00115"></a>00115 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Views&gt;
<a name="l00116"></a><a class="code" href="g_i_l_0169.html#g3a185bccf9e6716693003db876b25dde">00116</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="g_i_l_0169.html#g63405962170c1f94d6318d46134db7f4" title="Saves the view to a jpeg file specified by the given jpeg image file name.">jpeg_write_view</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename,<span class="keyword">const</span> <a class="code" href="g_i_l_0020.html" title="Represents a run-time specified image view. Models HasDynamicXStepTypeConcept, HasDynamicYStepTypeCo...">any_image_view&lt;Views&gt;</a>&amp; runtime_view) {
<a name="l00117"></a>00117     detail::jpeg_writer_dynamic m(filename);
<a name="l00118"></a>00118     m.write_view(runtime_view);
<a name="l00119"></a>00119 }
<a name="l00120"></a>00120 
<a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Views&gt;
<a name="l00124"></a><a class="code" href="g_i_l_0169.html#gd22217d98abdc6be2eb7e14a6593ea01">00124</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="g_i_l_0169.html#g63405962170c1f94d6318d46134db7f4" title="Saves the view to a jpeg file specified by the given jpeg image file name.">jpeg_write_view</a>(<span class="keyword">const</span> std::string&amp; filename,<span class="keyword">const</span> <a class="code" href="g_i_l_0020.html" title="Represents a run-time specified image view. Models HasDynamicXStepTypeConcept, HasDynamicYStepTypeCo...">any_image_view&lt;Views&gt;</a>&amp; runtime_view) {
<a name="l00125"></a>00125     <a class="code" href="g_i_l_0169.html#g63405962170c1f94d6318d46134db7f4" title="Saves the view to a jpeg file specified by the given jpeg image file name.">jpeg_write_view</a>(filename.c_str(),runtime_view);
<a name="l00126"></a>00126 }
<a name="l00127"></a>00127 
<a name="l00128"></a>00128 } }  <span class="comment">// namespace boost::gil</span>
<a name="l00129"></a>00129 
<a name="l00130"></a>00130 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:14 2009 for Generic Image Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
