⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _image_handler_8cpp-source.html

📁 基于symbian 平台 ocr 示例程序
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<a name="l00116"></a>00116 <span class="comment">// CImageHandler::LoadFileL</span><a name="l00117"></a>00117 <span class="comment">// Loads a selected frame from a named file</span><a name="l00118"></a>00118 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00119"></a>00119 <span class="comment">//</span><a name="l00120"></a><a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#bc7d6473bd91db4ba19c7e92921f0cfc">00120</a> <span class="keywordtype">void</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#bc7d6473bd91db4ba19c7e92921f0cfc">CImageHandler::LoadFileL</a>(<span class="keyword">const</span> TFileName&amp; aFileName, TInt aSelectedFrame)<a name="l00121"></a>00121     {<a name="l00122"></a>00122     __ASSERT_ALWAYS(!IsActive(),User::Invariant());<a name="l00123"></a>00123     <span class="keywordflow">if</span> ( <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a> )<a name="l00124"></a>00124         {<a name="l00125"></a>00125         <span class="keyword">delete</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a>;<a name="l00126"></a>00126         }<a name="l00127"></a>00127     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a> = NULL;<a name="l00128"></a>00128     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a> = CImageDecoder::FileNewL(<a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#7b548225db36c87401243f1080bbd0e8">iFs</a>, aFileName);<a name="l00129"></a>00129     <span class="comment">// Get image information</span><a name="l00130"></a>00130     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#d0e8d638754e553804f32380f275af15">iFrameInfo</a> = <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a>-&gt;FrameInfo(aSelectedFrame);<a name="l00131"></a>00131     <span class="comment">// Resize to fit.</span><a name="l00132"></a>00132     TRect bitmap = <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#d0e8d638754e553804f32380f275af15">iFrameInfo</a>.iFrameCoordsInPixels;<a name="l00133"></a>00133 <a name="l00134"></a>00134     <span class="comment">// release possible previous image</span><a name="l00135"></a>00135     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#26276106331cba77cd405dd3ad3d4975">iBitmap</a>-&gt;Reset();<a name="l00136"></a>00136     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#26276106331cba77cd405dd3ad3d4975">iBitmap</a>-&gt;Create(bitmap.Size(), EColor16M);<a name="l00137"></a>00137 <a name="l00138"></a>00138     <span class="comment">// Decode as bitmap.</span><a name="l00139"></a>00139     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a>-&gt;Convert(&amp;iStatus, *<a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#26276106331cba77cd405dd3ad3d4975">iBitmap</a>, aSelectedFrame);<a name="l00140"></a>00140     SetActive();<a name="l00141"></a>00141     }<a name="l00142"></a>00142 <a name="l00143"></a><a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#0135e243bf1c2ba8db5d62edc631e3d4">00143</a> <span class="keywordtype">void</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#0135e243bf1c2ba8db5d62edc631e3d4">CImageHandler::LoadFileAndScaleL</a>(<span class="keyword">const</span> TFileName&amp; aFileName,<a name="l00144"></a>00144                                       <span class="keyword">const</span> TSize &amp;aSize,<a name="l00145"></a>00145                                       TInt aSelectedFrame)<a name="l00146"></a>00146     {<a name="l00147"></a>00147     __ASSERT_ALWAYS(!IsActive(),User::Invariant());<a name="l00148"></a>00148     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#14cec3f66d8c971efee48bb188fb747b">iSize</a> = aSize;<a name="l00149"></a>00149     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#c5d4e22b78ca620602321f5229d5cc41">iScaledBitmap</a>-&gt;Reset();<a name="l00150"></a>00150     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#c5d4e22b78ca620602321f5229d5cc41">iScaledBitmap</a>-&gt;Create(aSize, EColor16M);<a name="l00151"></a>00151     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#bc7d6473bd91db4ba19c7e92921f0cfc">LoadFileL</a>(aFileName, aSelectedFrame);<a name="l00152"></a>00152     }<a name="l00153"></a>00153 <a name="l00154"></a><a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#9d85d1d402255f0d93ae2c42731e9953">00154</a> <span class="keywordtype">void</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#9d85d1d402255f0d93ae2c42731e9953">CImageHandler::ScaleL</a>()<a name="l00155"></a>00155     {<a name="l00156"></a>00156     __ASSERT_ALWAYS(!IsActive(),User::Invariant());<a name="l00157"></a>00157     <span class="keywordflow">if</span> ( <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#96d535106f5c2bbd3e511dc8b235cc53">iScaler</a> )<a name="l00158"></a>00158         {<a name="l00159"></a>00159         <span class="keyword">delete</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#96d535106f5c2bbd3e511dc8b235cc53">iScaler</a>;<a name="l00160"></a>00160         }<a name="l00161"></a>00161     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#96d535106f5c2bbd3e511dc8b235cc53">iScaler</a> = NULL;<a name="l00162"></a>00162     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#96d535106f5c2bbd3e511dc8b235cc53">iScaler</a> = CBitmapScaler::NewL();<a name="l00163"></a>00163     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#96d535106f5c2bbd3e511dc8b235cc53">iScaler</a>-&gt;Scale(&amp;iStatus, *<a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#26276106331cba77cd405dd3ad3d4975">iBitmap</a>, *<a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#c5d4e22b78ca620602321f5229d5cc41">iScaledBitmap</a>, ETrue);<a name="l00164"></a>00164     SetActive();<a name="l00165"></a>00165     }<a name="l00166"></a>00166 <a name="l00167"></a><a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#5321ab83edffb2d7f3815c37aaaaad51">00167</a> <span class="keywordtype">void</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#5321ab83edffb2d7f3815c37aaaaad51">CImageHandler::FitToScreenL</a>(<span class="keyword">const</span> TSize &amp;aSize)<a name="l00168"></a>00168     {<a name="l00169"></a>00169     <span class="keywordflow">if</span> (! <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#26276106331cba77cd405dd3ad3d4975">iBitmap</a>-&gt;Handle())<a name="l00170"></a>00170         {<a name="l00171"></a>00171         <span class="keywordflow">return</span>;<a name="l00172"></a>00172         }<a name="l00173"></a>00173 <a name="l00174"></a>00174     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#c5d4e22b78ca620602321f5229d5cc41">iScaledBitmap</a>-&gt;Reset();<a name="l00175"></a>00175     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#c5d4e22b78ca620602321f5229d5cc41">iScaledBitmap</a>-&gt;Create(aSize, EColor16M);<a name="l00176"></a>00176     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#9d85d1d402255f0d93ae2c42731e9953">ScaleL</a>();<a name="l00177"></a>00177     }<a name="l00178"></a>00178 <a name="l00179"></a>00179 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00180"></a>00180 <span class="comment">// CImageHandler::FrameInfo</span><a name="l00181"></a>00181 <span class="comment">// Get the current frame information.</span><a name="l00182"></a>00182 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00183"></a>00183 <span class="comment">//</span><a name="l00184"></a><a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#f09f61bc97d26686cc16f9b686d6097b">00184</a> <span class="keyword">const</span> TFrameInfo&amp; <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#f09f61bc97d26686cc16f9b686d6097b">CImageHandler::FrameInfo</a>()<span class="keyword"> const</span><a name="l00185"></a>00185 <span class="keyword">    </span>{<a name="l00186"></a>00186     <span class="keywordflow">return</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#d0e8d638754e553804f32380f275af15">iFrameInfo</a>;<a name="l00187"></a>00187     }<a name="l00188"></a>00188 <a name="l00189"></a>00189 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00190"></a>00190 <span class="comment">// CImageHandler::RunL</span><a name="l00191"></a>00191 <span class="comment">// CActive::RunL() implementation. Called on image load success/failure.</span><a name="l00192"></a>00192 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00193"></a>00193 <span class="comment">//</span><a name="l00194"></a><a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#98dcd20e4dd117488a6a90dadd4dfac5">00194</a> <span class="keywordtype">void</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#98dcd20e4dd117488a6a90dadd4dfac5">CImageHandler::RunL</a>()<a name="l00195"></a>00195     {<a name="l00196"></a>00196     <span class="keywordflow">if</span> ((! iStatus.Int()) &amp;&amp; (<a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#14cec3f66d8c971efee48bb188fb747b">iSize</a>.iWidth != 0) &amp;&amp; (<a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#14cec3f66d8c971efee48bb188fb747b">iSize</a>.iHeight != 0))<a name="l00197"></a>00197         {<a name="l00198"></a>00198         <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#9d85d1d402255f0d93ae2c42731e9953">ScaleL</a>();<a name="l00199"></a>00199         }<a name="l00200"></a>00200     <span class="keywordflow">else</span><a name="l00201"></a>00201         {<a name="l00202"></a>00202         <span class="comment">// Invoke callback.</span><a name="l00203"></a>00203         <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#56c1b49f1257fe9366675b21601620d6">iCallback</a>.<a class="code" href="class_n_o_c_r_utils_1_1_m_image_handler_callback.html#3db218089f2258a62d37b47650b805b6">ImageOperationCompleteL</a>(iStatus.Int());<a name="l00204"></a>00204         }<a name="l00205"></a>00205     <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#14cec3f66d8c971efee48bb188fb747b">iSize</a>.SetSize(0,0);<a name="l00206"></a>00206     }<a name="l00207"></a>00207 <a name="l00208"></a>00208 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00209"></a>00209 <span class="comment">// CImageHandler::DoCancel</span><a name="l00210"></a>00210 <span class="comment">// CActive::Cancel() implementation. Stops decoding.</span><a name="l00211"></a>00211 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00212"></a>00212 <span class="comment">//</span><a name="l00213"></a><a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#79737b00f2b6a07492c7caf4220c6691">00213</a> <span class="keywordtype">void</span> <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#79737b00f2b6a07492c7caf4220c6691">CImageHandler::DoCancel</a>()<a name="l00214"></a>00214     {<a name="l00215"></a>00215     <span class="keywordflow">if</span> ( <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a> )<a name="l00216"></a>00216         {<a name="l00217"></a>00217         <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a>-&gt;Cancel();<a name="l00218"></a>00218         }<a name="l00219"></a>00219     <span class="keywordflow">if</span> ( <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#96d535106f5c2bbd3e511dc8b235cc53">iScaler</a> )<a name="l00220"></a>00220         {<a name="l00221"></a>00221         <a class="code" href="class_n_o_c_r_utils_1_1_c_image_handler.html#edfc84ea4c64b9bf5bdf7e83a1ff352c">iDecoder</a>-&gt;Cancel();<a name="l00222"></a>00222         }<a name="l00223"></a>00223     }<a name="l00224"></a>00224 <a name="l00225"></a>00225 <a name="l00226"></a>00226 </pre></div><hr><table x-use-null-cells		style="x-cell-content-align: top;				width: 100%;				border-spacing: 0px;				border-spacing: 0px;"		cellspacing=0		width=100%>  <col style="width: 50%;">  <col style="width: 50%;">  <tr style="x-cell-content-align: top;"	valign=top>  <td style="width: 50%;			padding-right: 10px;			padding-left: 10px;			border-right-style: None;			border-left-style: None;			border-top-style: None;			border-bottom-style: None;"	width=50%>  <p style="font-family: Arial;"><small style="font-size: smaller;">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -