Files
thejinchao.github.io/assets/JPEG005.html-CodGT0UU.js
T

10 lines
3.7 KiB
JavaScript

import{_ as e,c as a,a as t,o as s}from"./app-D1UhKcG3.js";const p={};function o(c,n){return s(),a("div",null,n[0]||(n[0]=[t(`<h1 id="jpeg算法解密-五" tabindex="-1"><a class="header-anchor" href="#jpeg算法解密-五"><span>JPEG算法解密(五)</span></a></h1><p>最后,我提供给大家一个简易的jpeg压缩算法的代码,这份代码用C++编写,以开源方式提供,放在了github上,可以到下面这个网址下载<br><a href="http://github.com/thejinchao/jpeg_encoder" target="_blank" rel="noopener noreferrer">http://github.com/thejinchao/jpeg_encoder</a><br> 使用方法很简单,像下面这样就可以了</p><div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string">&quot;jpeg_encoder.h&quot;</span></span></span>
<span class="line"> </span>
<span class="line">JpegEncoder encoder<span class="token punctuation">;</span></span>
<span class="line"><span class="token comment">//输入的文件必须是24bit的bmp文件,尺寸必须是8的倍数</span></span>
<span class="line">encoder<span class="token punctuation">.</span><span class="token function">readFromBMP</span><span class="token punctuation">(</span>inputFileName<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"> </span>
<span class="line"><span class="token comment">//第二个参数在1~199之间,代表文件压缩程度,数字越大,压缩后的文件体积越小</span></span>
<span class="line">encoder<span class="token punctuation">.</span><span class="token function">encodeToJPG</span><span class="token punctuation">(</span>outputFileName<span class="token punctuation">,</span> <span class="token number">50</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"></span></code></pre></div><p>这份代码只是为了配合这个系列的文章,所以没有考虑优化,如果你想在实际工程中使用jpeg的压缩算法,还是使用被广泛应用的libjpeg或者OpenJpeg。</p><hr><p>参考资料:<br> 【1】<a href="http://www.impulseadventure.com/photo/jpeg-huffman-coding.html" target="_blank" rel="noopener noreferrer">http://www.impulseadventure.com/photo/jpeg-huffman-coding.html</a><br> 【2】<a href="http://www.mysanco.cn/index.php?class=wenku&amp;action=wenku_item&amp;id=96" target="_blank" rel="noopener noreferrer">http://www.mysanco.cn/index.php?class=wenku&amp;action=wenku_item&amp;id=96</a><br> 【3】<a href="http://www.codingnow.com/2000/download/jpeg.txt" target="_blank" rel="noopener noreferrer">http://www.codingnow.com/2000/download/jpeg.txt</a><br> 【4】<a href="http://jingyan.baidu.com/article/cbf0e500f1ce562eaa2893f4.html" target="_blank" rel="noopener noreferrer">http://jingyan.baidu.com/article/cbf0e500f1ce562eaa2893f4.html</a><br> 【5】<a href="http://www.codeproject.com/Articles/83225/A-Simple-JPEG-Encoder-in-C" target="_blank" rel="noopener noreferrer">http://www.codeproject.com/Articles/83225/A-Simple-JPEG-Encoder-in-C</a></p>`,6)]))}const l=e(p,[["render",o],["__file","JPEG005.html.vue"]]),i=JSON.parse('{"path":"/blog/2025/02/JPEG005.html","title":"JPEG算法解密(五)","lang":"zh-CN","frontmatter":{"title":"JPEG算法解密(五)","tags":"压缩 图像 程序 算法"},"headers":[],"git":{"updatedTime":1740225290000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"blog/2025/02/JPEG005.md"}');export{l as comp,i as data};