-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.xml
34 lines (16 loc) · 10.3 KB
/
search.xml
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
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>批量压缩图片为Webp</title>
<link href="/2024/04/01/webp_convert/"/>
<url>/2024/04/01/webp_convert/</url>
<content type="html"><![CDATA[<h1 id="批量压缩图片为Webp"><a href="#批量压缩图片为Webp" class="headerlink" title="批量压缩图片为Webp"></a>批量压缩图片为Webp</h1><blockquote><p>博客建站过程中,为了使图片加载更加顺畅和丝滑,我们通常会进行图片的批量压缩,传统的 ImageOptim 、TinyPNG等工具往往不能压缩的到一个比较极致的尺寸。转换格式并压缩成webp成了一个更好的选择。</p></blockquote><p>为了做到这一点,我将所有图片从以前的 png、jpg、gif 格式转换为谷歌的 WebP 格式。我使用的是 <a href="https://developers.google.com/speed/webp/docs/cwebpc">cwebp</a> 命令行工具。</p><p><img src="https://cdn.jsdelivr.net/gh/CivelXu/jsdelivr_sources@latest/blog/misc/202404011738801.webp" alt="Webp"></p><h2 id="cwebp"><a href="#cwebp" class="headerlink" title="cwebp"></a><a href="https://developers.google.com/speed/webp/docs/cwebp">cwebp</a></h2><h3 id="安装-cwebp"><a href="#安装-cwebp" class="headerlink" title="安装 cwebp"></a>安装 cwebp</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">brew install webp</span><br></pre></td></tr></table></figure><h3 id="使用-cwebp"><a href="#使用-cwebp" class="headerlink" title="使用 cwebp"></a>使用 cwebp</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cwebp [options] input_file -o output_file.webp</span><br></pre></td></tr></table></figure><h3 id="常用的参数"><a href="#常用的参数" class="headerlink" title="常用的参数"></a>常用的参数</h3><ul><li><p>-q float<br>在 0 和 100 之间指定 RGB 通道的压缩系数。默认值为 75。</p></li><li><p>-lossless<br>对图像进行编码,没有任何损失。</p></li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cwebp -lossless infile.webp</span><br></pre></td></tr></table></figure><ul><li>-resize width height</li></ul><p>对图像进行调整尺寸编码编码</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cwebp -resize 800 0 infile.webp</span><br></pre></td></tr></table></figure><p>这将 webp 文件的最大宽度调整为 800,0 表示 “保持高度的宽高比”。</p><h3 id="更多示范"><a href="#更多示范" class="headerlink" title="更多示范"></a>更多示范</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">cwebp -q 50 -lossless picture.png -o picture_lossless.webp</span><br><span class="line">cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp</span><br><span class="line">cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp</span><br><span class="line">cwebp -o picture.webp -- ---picture.png</span><br></pre></td></tr></table></figure><p>更多命令参考<a href="https://developers.google.com/speed/webp/docs/cwebp">文档</a></p><h2 id="gif2webp"><a href="#gif2webp" class="headerlink" title="gif2webp"></a><a href="https://developers.google.com/speed/webp/docs/gif2webp">gif2webp</a></h2><h3 id="使用-gif2webp"><a href="#使用-gif2webp" class="headerlink" title="使用 gif2webp"></a>使用 gif2webp</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gif2webp [options] input_file.gif -o output_file.webp</span><br></pre></td></tr></table></figure><h3 id="常用的参数-1"><a href="#常用的参数-1" class="headerlink" title="常用的参数"></a>常用的参数</h3><ul><li><p>-lossy<br>使用有损压缩对图像进行编码。</p></li><li><p>-mixed<br>混合压缩模式:通过启发式地为每个帧选择有损压缩或无损压缩来优化图像压缩。</p></li><li><p>-min_size<br>编码图像以实现最小尺寸。这将禁用关键帧插入,并选择处理方法,使每一帧的输出都最小。它默认使用无损压缩,但可与 -q 、 -m 和 -q 结合使用。, -m、 -lossy 或 -mixed 选项结合使用。</p></li><li><p>-f<br>仅用于有损编码(由 -lossy 选项指定)。在 0 (无过滤)和 100 之间指定解锁过滤器的强度。(无过滤)和 100 之间(最大过滤)。(最大过滤强度)之间。 0 值将关闭任何过滤功能。数值越大,解码后应用的滤波处理强度越高。数值越大,图像越平滑。典型值通常在 20 到 50 之间。.</p></li></ul><h3 id="更多示范-1"><a href="#更多示范-1" class="headerlink" title="更多示范"></a>更多示范</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">gif2webp picture.gif -o picture.webp</span><br><span class="line">gif2webp -q 70 picture.gif -o picture.webp</span><br><span class="line">gif2webp -lossy -m 3 picture.gif -o picture_lossy.webp</span><br><span class="line">gif2webp -lossy -f 50 picture.gif -o picture.webp</span><br><span class="line">gif2webp -min_size -q 30 -o picture.webp -- ---picture.gif</span><br><span class="line"><span class="built_in">cat</span> picture.gif | gif2webp -o - -- - > output.webp</span><br></pre></td></tr></table></figure><p>更多命令参考<a href="https://developers.google.com/speed/webp/docs/gif2webp">文档</a></p><h2 id="批量压缩"><a href="#批量压缩" class="headerlink" title="批量压缩"></a>批量压缩</h2><p><code>cd</code> 到图片的文件夹,执行以下命令。<br>命令会匹配文件格式image/png/gif,同名输出webp文件。</p><h3 id="有损压缩"><a href="#有损压缩" class="headerlink" title="有损压缩"></a>有损压缩</h3><h4 id="压缩编码调整,可以自己根据需要进行修改"><a href="#压缩编码调整,可以自己根据需要进行修改" class="headerlink" title="压缩编码调整,可以自己根据需要进行修改"></a>压缩编码调整,可以自己根据需要进行修改</h4><ul><li>jpeg/png,宽度最大 1920,保持保持高度的宽高比</li><li>gif 保留 50的质量</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">find . -<span class="built_in">type</span> f -<span class="built_in">exec</span> bash -c <span class="string">'</span></span><br><span class="line"><span class="string">for x; do</span></span><br><span class="line"><span class="string"> case "$(file -b --mime-type "$x")" in</span></span><br><span class="line"><span class="string"> image/jpeg) cwebp -resize 1920 0 -mt "$x" -o "${x%.*}.webp" ;;</span></span><br><span class="line"><span class="string"> image/png) cwebp -resize 1920 0 -mt "$x" -o "${x%.*}.webp" ;;</span></span><br><span class="line"><span class="string"> image/gif) gif2webp -lossy -f 50 -mt "$x" -o "${x%.*}.webp" ;;</span></span><br><span class="line"><span class="string"> *) echo "Unsupported format: $x" ;;</span></span><br><span class="line"><span class="string"> esac</span></span><br><span class="line"><span class="string">done</span></span><br><span class="line"><span class="string">'</span> bash {} +</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="无损压缩"><a href="#无损压缩" class="headerlink" title="无损压缩"></a>无损压缩</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">find . -<span class="built_in">type</span> f -<span class="built_in">exec</span> bash -c <span class="string">'</span></span><br><span class="line"><span class="string">for x; do</span></span><br><span class="line"><span class="string"> case "$(file -b --mime-type "$x")" in</span></span><br><span class="line"><span class="string"> image/jpeg) cwebp -q 75 -jpeg_like -mt "$x" -o "${x%.*}.webp" ;;</span></span><br><span class="line"><span class="string"> image/png) cwebp -lossless -mt "$x" -o "${x%.*}.webp" ;;</span></span><br><span class="line"><span class="string"> image/gif) gif2webp -mt "$x" -o "${x%.*}.webp" ;;</span></span><br><span class="line"><span class="string"> *) echo "Unsupported format: $x" ;;</span></span><br><span class="line"><span class="string"> esac</span></span><br><span class="line"><span class="string">done</span></span><br><span class="line"><span class="string">'</span> bash {} +</span><br></pre></td></tr></table></figure>]]></content>
<categories>
<category> 开发工具集 </category>
</categories>
<tags>
<tag> webp </tag>
<tag> 图片压缩 </tag>
</tags>
</entry>
</search>