1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>paintlib: pljpegenc.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Compound List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Compound Members</a></div>
<h1>pljpegenc.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
00002 <span class="comment">/--------------------------------------------------------------------</span>
00003 <span class="comment">|</span>
00004 <span class="comment">| $Id: pljpegenc_8h-source.html,v 1.4 2004/09/15 15:26:29 uzadow Exp $</span>
00005 <span class="comment">|</span>
00006 <span class="comment">| Copyright (c) 1996-2002 Ulrich von Zadow</span>
00007 <span class="comment">|</span>
00008 <span class="comment">\--------------------------------------------------------------------</span>
00009 <span class="comment">*/</span>
00010
00011 <span class="preprocessor">#ifndef INCL_PLJPEGENC</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define INCL_PLJPEGENC</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#ifndef INCL_PLPICENC</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#include "plpicenc.h"</span>
00016 <span class="preprocessor">#endif</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include "plexif.h"</span>
00019
00020 <span class="keyword">struct </span>jpeg_compress_struct;
00021 <span class="keyword">struct </span>jpeg_error_mgr;
00022 <span class="comment"></span>
00023 <span class="comment">//! JPEG file encoder. Uses the independent JPEG group's library</span>
00024 <span class="comment">//! to do the actual conversion.</span>
<a name="l00025"></a><a class="code" href="classPLJPEGEncoder.html">00025</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classPLJPEGEncoder.html">PLJPEGEncoder</a> : <span class="keyword">public</span> <a class="code" href="classPLPicEncoder.html">PLPicEncoder</a>
00026 {
00027
00028 <span class="keyword">public</span>:<span class="comment"></span>
00029 <span class="comment"> //! Creates an encoder</span>
00030 <span class="comment"></span> <a class="code" href="classPLJPEGEncoder.html">PLJPEGEncoder</a>
00031 ();
00032 <span class="comment"></span>
00033 <span class="comment"> //! Destroys a encoder</span>
00034 <span class="comment"></span> ~<a class="code" href="classPLJPEGEncoder.html">PLJPEGEncoder</a>
00035 ();
00036
00037 <span class="comment">// todo: Notification not yet implemented for encoding.</span>
00038 <span class="comment">/*</span>
00039 <span class="comment"> static void JNotification</span>
00040 <span class="comment"> (j_common_ptr cinfo</span>
00041 <span class="comment"> );</span>
00042 <span class="comment"> */</span>
00043 <span class="comment"></span>
00044 <span class="comment"> //! Set the compression quality on a scale from 0 to 100.</span>
00045 <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classPLJPEGEncoder.html#a2">SetQuality</a>(<span class="keywordtype">int</span> iQuality);<span class="comment"></span>
00046 <span class="comment"> //! Enable or disable the generation of optimal Huffmann coding tables.</span>
00047 <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classPLJPEGEncoder.html#a3">SetOptimizeCoding</a>(<span class="keywordtype">bool</span> bOptimizeCoding);<span class="comment"></span>
00048 <span class="comment"> //! Set the smoothing factor (<=100). 0 turns it off.</span>
00049 <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classPLJPEGEncoder.html#a4">SetSmoothingFactor</a>(<span class="keywordtype">int</span> iSmoothingFactor);<span class="comment"></span>
00050 <span class="comment"> //! Set the resolution information (DPI) for the image.</span>
00051 <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classPLJPEGEncoder.html#a5">SetDensity</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uiX, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uiY);
00052 <span class="comment"></span>
00053 <span class="comment"> //! Set Exif (digital camera) Data for the next encode. The encoder only </span>
00054 <span class="comment"> //! holds on to the Exif data until the next encode.</span>
00055 <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classPLJPEGEncoder.html#a6">SetExifData</a>(PLExif& ExifData);
00056
00057 <span class="keyword">protected</span>:
00058 <span class="comment">// Sets up the jpeg library data source and error handler and</span>
00059 <span class="comment">// calls the jpeg encoder.</span>
00060 <span class="keywordtype">void</span> <a class="code" href="classPLJPEGEncoder.html#b0">DoEncode</a>
00061 ( <a class="code" href="classPLBmpBase.html">PLBmpBase</a> * pBmp,
00062 <a class="code" href="classPLDataSink.html">PLDataSink</a> * pDataSink
00063 );
00064
00065 <span class="keyword">private</span>:
00066 <span class="comment">// Assumes IJPEG decoder is already set up.</span>
00067 <span class="keywordtype">void</span> encodeRGB
00068 ( <a class="code" href="classPLBmpBase.html">PLBmpBase</a> * pBmp,
00069 <span class="keywordtype">int</span> iScanLines
00070 );
00071
00072 jpeg_compress_struct * m_pcinfo; <span class="comment">// IJPEG encoder state.</span>
00073 jpeg_error_mgr * m_pjerr; <span class="comment">// Custom error manager.</span>
00074
00075 <span class="keywordtype">int</span> iQuality_;
00076 <span class="keywordtype">bool</span> bOptimizeCoding_;
00077 <span class="keywordtype">int</span> iSmoothingFactor_;
00078 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uiDensityX_;
00079 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uiDensityY_;
00080 PLExif* m_pExifData;
00081 };
00082
00083 <span class="preprocessor">#endif</span>
00084 <span class="preprocessor"></span>
00085 <span class="comment">/*</span>
00086 <span class="comment">/--------------------------------------------------------------------</span>
00087 <span class="comment">|</span>
00088 <span class="comment">| $Log: pljpegenc_8h-source.html,v $
00088 <span class="comment">| Revision 1.4 2004/09/15 15:26:29 uzadow
00088 <span class="comment">| Linux compatibility changes, doc update.
00088 <span class="comment">|</span>
00089 <span class="comment">| Revision 1.5 2004/06/19 18:16:33 uzadow</span>
00090 <span class="comment">| Documentation update</span>
00091 <span class="comment">|</span>
00092 <span class="comment">| Revision 1.4 2003/04/19 19:03:52 uzadow</span>
00093 <span class="comment">| Exif save (windows)</span>
00094 <span class="comment">|</span>
00095 <span class="comment">| Revision 1.3 2002/02/24 13:00:21 uzadow</span>
00096 <span class="comment">| Documentation update; removed buggy PLFilterRotate.</span>
00097 <span class="comment">|</span>
00098 <span class="comment">| Revision 1.2 2001/10/06 20:44:45 uzadow</span>
00099 <span class="comment">| Linux compatibility</span>
00100 <span class="comment">|</span>
00101 <span class="comment">| Revision 1.1 2001/09/16 19:03:22 uzadow</span>
00102 <span class="comment">| Added global name prefix PL, changed most filenames.</span>
00103 <span class="comment">|</span>
00104 <span class="comment">| Revision 1.5 2000/05/22 17:43:25 Ulrich von Zadow</span>
00105 <span class="comment">| Added SetQuality(), SetDensity(), SetOptimizeCoding() and</span>
00106 <span class="comment">| SetSmoothingFactor().</span>
00107 <span class="comment">|</span>
00108 <span class="comment">| Revision 1.4 2000/01/16 20:43:13 anonymous</span>
00109 <span class="comment">| Removed MFC dependencies</span>
00110 <span class="comment">|</span>
00111 <span class="comment">| Revision 1.3 1999/12/08 15:39:45 Ulrich von Zadow</span>
00112 <span class="comment">| Unix compatibility changes</span>
00113 <span class="comment">|</span>
00114 <span class="comment">| Revision 1.2 1999/11/27 18:45:48 Ulrich von Zadow</span>
00115 <span class="comment">| Added/Updated doc comments.</span>
00116 <span class="comment">|</span>
00117 <span class="comment">| Revision 1.1 1999/10/19 21:28:05 Ulrich von Zadow</span>
00118 <span class="comment">| Added jpeg encoder</span>
00119 <span class="comment">|</span>
00120 <span class="comment">|</span>
00121 <span class="comment">\--------------------------------------------------------------------</span>
00122 <span class="comment">*/</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Sep 13 16:16:40 2004 for paintlib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
</a>1.3.2 </small></address>
</body>
</html>
|