Files
dl/document/html/dl__image_8h_source.html
T
2026-09-16 14:07:40 +08:00

196 lines
33 KiB
HTML
Vendored

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: D:/dl/dl/render/dl_image.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_fb7736e1c74498e30aec54e277779486.html">render</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_image.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__image_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &quot;<a class="code" href="dl__vector2_8h.html">base/dl_vector2.h</a>&quot;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &quot;<a class="code" href="dl__type_8h.html">dl_type.h</a>&quot;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;<a class="code" href="dl__range__any_8h.html">base/dl_range_any.h</a>&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &quot;<a class="code" href="dl__buffer_8h.html">memory/dl_buffer.h</a>&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl.html">dl</a></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>{</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e"> 28</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a> = <a class="code hl_class" href="classdl_1_1_vector2.html">Vector2&lt;uint32_t, unsigned&gt;</a>;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span></div>
<div class="foldopen" id="foldopen00032" data-start="{" data-end="}">
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html"> 32</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl_1_1_img.html">Img</a></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>{</div>
<div class="foldopen" id="foldopen00040" data-start="{" data-end="}">
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a70e0e680b145bd9c5ece340094528ff6"> 40</a></span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespacedl_1_1_img.html#a70e0e680b145bd9c5ece340094528ff6">IsSupportFormat</a>(std::string_view str, <span class="keywordtype">bool</span> read)</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>{</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">constexpr</span> std::array&lt;std::string_view, 9&gt; ARRAY_READ = {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="stringliteral">&quot;jpg&quot;</span>, <span class="stringliteral">&quot;jpeg&quot;</span>, <span class="stringliteral">&quot;png&quot;</span>, <span class="stringliteral">&quot;tga&quot;</span>, <span class="stringliteral">&quot;bmp&quot;</span>, <span class="stringliteral">&quot;psd&quot;</span>, <span class="stringliteral">&quot;gif&quot;</span>, <span class="stringliteral">&quot;hdr&quot;</span>, <span class="stringliteral">&quot;pic&quot;</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> };</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">constexpr</span> std::array&lt;std::string_view, 3&gt; ARRAY_WRITE = {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="stringliteral">&quot;png&quot;</span>, <span class="stringliteral">&quot;tag&quot;</span>, <span class="stringliteral">&quot;bmp&quot;</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> };</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">return</span> read ? <a class="code hl_function" href="namespacedl_1_1_any.html#aade322b75b02d876efc8f7ab70fdb2b2">Any::Equal</a>(ARRAY_READ, str) : <a class="code hl_function" href="namespacedl_1_1_any.html#aade322b75b02d876efc8f7ab70fdb2b2">Any::Equal</a>(ARRAY_WRITE, str);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span>}</div>
</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">// 不读取psd</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#ab63d0ee77f71e56c8da9ecf18075279c"> 52</a></span><span class="keyword">constexpr</span> std::string_view <a class="code hl_variable" href="namespacedl_1_1_img.html#ab63d0ee77f71e56c8da9ecf18075279c">REGEX_FORMAT</a> = <span class="stringliteral">&quot;.(jpg|jpeg|png|tag|bmp|gif|hdr|pic)$&quot;</span>;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#ae99825aa0ea6f633298f22aa0ab08f18"> 62</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#ae99825aa0ea6f633298f22aa0ab08f18">Create</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#af4b025efbd5dae0045cce4cbc9546416">Size</a>&amp; size, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab0aa26817739678b786d66b6c9f50ae7">Color</a>&amp; col);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#aa2446e372d27dfe72d7f9fb141f9718d"> 68</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#ae99825aa0ea6f633298f22aa0ab08f18">Create</a>(std::string_view path_name);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a94260454a3fa1494872e38b46d98e310"> 77</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#a94260454a3fa1494872e38b46d98e310">CreateSvg</a>(std::string_view path_name, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#af4b025efbd5dae0045cce4cbc9546416">Size</a>&amp; size);</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a2b924a8fc9c73f0e99e0467f4b183e55"> 85</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#a2b924a8fc9c73f0e99e0467f4b183e55">CreateWebp</a>(std::string_view path_name);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#ae5ca55e12f9abd42900ff4312da01b0e"> 88</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#a2b924a8fc9c73f0e99e0467f4b183e55">CreateWebp</a>(<a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> buf);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#acd221e47cab450ce10c9a93a66de7134"> 93</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacedl_1_1_img.html#acd221e47cab450ce10c9a93a66de7134">Save</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, std::string_view path_name);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#ac31f74c8147b30fcc8fd5f4176458fdc"> 98</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacedl_1_1_img.html#ac31f74c8147b30fcc8fd5f4176458fdc">SaveKtx</a>(std::span&lt;Image*&gt; vec_img, std::string_view path_name);</div>
<div class="foldopen" id="foldopen00099" data-start="{" data-end="}">
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a5c6283f00b32d328351632592b939a78"> 99</a></span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespacedl_1_1_img.html#ac31f74c8147b30fcc8fd5f4176458fdc">SaveKtx</a>(<a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, std::string_view path_name)</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>{</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> std::array&lt;Image*, 1&gt; arr = { img };</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacedl_1_1_img.html#ac31f74c8147b30fcc8fd5f4176458fdc">SaveKtx</a>(arr, path_name);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>}</div>
</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a3c57e7e4d67fc98725dbd8ac70e9fbac"> 111</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_img.html#a3c57e7e4d67fc98725dbd8ac70e9fbac">CalcLeastRect</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, <a class="code hl_typedef" href="namespacedl.html#ac630b67756cfd3694b7885c5958e52a7">RectU</a>&amp; rect);</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#ab29ed4498e2aa2c166f1c0c88af07355"> 118</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespacedl_1_1_img.html#ab29ed4498e2aa2c166f1c0c88af07355">IsHaveTranslucent</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ac630b67756cfd3694b7885c5958e52a7">RectU</a>&amp; rect);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a5f8ea9b2db2d98e0583a012b583ae800"> 128</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_img.html#a5f8ea9b2db2d98e0583a012b583ae800">AddRect</a>(<a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img_tar, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img_src, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ac630b67756cfd3694b7885c5958e52a7">RectU</a>&amp; rect, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#a6347394cca146fd6b8fedf1d3545de59">PointU</a>&amp; tar_xy);</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a10104818a0c0ed02ca50a2dc09fd1176"> 133</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_img.html#a10104818a0c0ed02ca50a2dc09fd1176">SetAlphaZero</a>(<a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a9b4e1ea077dcfab26b5139c47eb45138"> 139</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_img.html#a10104818a0c0ed02ca50a2dc09fd1176">SetAlphaZero</a>(<a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, uint8_t a, uint32_t col_new = 0);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#afd30be23ae18721c5e10b06f74ae5f71"> 147</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#afd30be23ae18721c5e10b06f74ae5f71">Resize</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#af4b025efbd5dae0045cce4cbc9546416">Size</a>&amp; size);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a59427d76618a2a776eaece4bd8796bff"> 149</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#afd30be23ae18721c5e10b06f74ae5f71">Resize</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, <a class="code hl_typedef" href="namespacedl.html#a2deb3e79723ed0c188c47443a48744b7">Float</a> scale);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="foldopen" id="foldopen00151" data-start="{" data-end="};">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9c"> 151</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9c">ExtendMode</a></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>{</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9ca529e9e0beb5f85d1f132917c1a09860c"> 153</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9ca529e9e0beb5f85d1f132917c1a09860c">ZERO</a>, <span class="comment">// 填充0</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9cae8606d021da140a92c7eba8d9b8af84f"> 154</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9cae8606d021da140a92c7eba8d9b8af84f">COPY</a>, <span class="comment">// 复制边缘颜色</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span>};</div>
</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a4e615f518d2d96d382d344fa3d2b56c7"> 161</a></span><a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* <a class="code hl_function" href="namespacedl_1_1_img.html#a4e615f518d2d96d382d344fa3d2b56c7">Extend</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, <span class="keywordtype">unsigned</span> i, <a class="code hl_enumeration" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9c">ExtendMode</a> mode = <a class="code hl_enumvalue" href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9ca529e9e0beb5f85d1f132917c1a09860c">ExtendMode::ZERO</a>);</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#afed846b34f08fe6367280bdd9c2a646f"> 168</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_img.html#afed846b34f08fe6367280bdd9c2a646f">BuildBorder</a>(<a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img, <span class="keywordtype">unsigned</span> i);</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="namespacedl_1_1_img.html#a85f0fbbca7b26c71e699634a37894247"> 175</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_img.html#a85f0fbbca7b26c71e699634a37894247">CvtEffect2Normal</a>(<a class="code hl_typedef" href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">Image</a>* img);</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>}</div>
</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span>}</div>
<div class="ttc" id="aclassdl_1_1_buffer_view_html"><div class="ttname"><a href="classdl_1_1_buffer_view.html">dl::BufferView</a></div><div class="ttdef"><b>定义</b> <a href="dl__buffer_8h_source.html#l00155">dl_buffer.h:156</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector2_html"><div class="ttname"><a href="classdl_1_1_vector2.html">dl::Vector2</a></div><div class="ttdoc">2维vector</div><div class="ttdef"><b>定义</b> <a href="dl__vector2_8h_source.html#l00030">dl_vector2.h:31</a></div></div>
<div class="ttc" id="adl__buffer_8h_html"><div class="ttname"><a href="dl__buffer_8h.html">dl_buffer.h</a></div><div class="ttdoc">表示一段内存</div></div>
<div class="ttc" id="adl__range__any_8h_html"><div class="ttname"><a href="dl__range__any_8h.html">dl_range_any.h</a></div><div class="ttdoc">范围操作 任一满足条件</div></div>
<div class="ttc" id="adl__type_8h_html"><div class="ttname"><a href="dl__type_8h.html">dl_type.h</a></div><div class="ttdoc">通用类型</div></div>
<div class="ttc" id="adl__vector2_8h_html"><div class="ttname"><a href="dl__vector2_8h.html">dl_vector2.h</a></div><div class="ttdoc">2维vector</div></div>
<div class="ttc" id="anamespacedl_1_1_any_html_aade322b75b02d876efc8f7ab70fdb2b2"><div class="ttname"><a href="namespacedl_1_1_any.html#aade322b75b02d876efc8f7ab70fdb2b2">dl::Any::Equal</a></div><div class="ttdeci">bool Equal(const C &amp;container, const V &amp;v)</div><div class="ttdoc">判断容器任意元素等于某值</div><div class="ttdef"><b>定义</b> <a href="dl__range__any_8h_source.html#l00024">dl_range_any.h:24</a></div></div>
<div class="ttc" id="anamespacedl_1_1_img_html"><div class="ttname"><a href="namespacedl_1_1_img.html">dl::Img</a></div><div class="ttdoc">图像操作</div><div class="ttdef"><b>定义</b> <a href="#l00032">dl_image.h:33</a></div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a10104818a0c0ed02ca50a2dc09fd1176"><div class="ttname"><a href="namespacedl_1_1_img.html#a10104818a0c0ed02ca50a2dc09fd1176">dl::Img::SetAlphaZero</a></div><div class="ttdeci">void SetAlphaZero(Image *img)</div><div class="ttdoc">设置透明色颜色为0,针对于某些颜色透明,但是其他通道非0</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a2b924a8fc9c73f0e99e0467f4b183e55"><div class="ttname"><a href="namespacedl_1_1_img.html#a2b924a8fc9c73f0e99e0467f4b183e55">dl::Img::CreateWebp</a></div><div class="ttdeci">Image * CreateWebp(std::string_view path_name)</div><div class="ttdoc">创建图像 从webp</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a3c57e7e4d67fc98725dbd8ac70e9fbac"><div class="ttname"><a href="namespacedl_1_1_img.html#a3c57e7e4d67fc98725dbd8ac70e9fbac">dl::Img::CalcLeastRect</a></div><div class="ttdeci">void CalcLeastRect(const Image *img, RectU &amp;rect)</div><div class="ttdoc">计算返回最小包围盒(去除边缘的全透明像素)</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a4e615f518d2d96d382d344fa3d2b56c7"><div class="ttname"><a href="namespacedl_1_1_img.html#a4e615f518d2d96d382d344fa3d2b56c7">dl::Img::Extend</a></div><div class="ttdeci">Image * Extend(const Image *img, unsigned i, ExtendMode mode=ExtendMode::ZERO)</div><div class="ttdoc">拓展图像边缘像素</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a5f8ea9b2db2d98e0583a012b583ae800"><div class="ttname"><a href="namespacedl_1_1_img.html#a5f8ea9b2db2d98e0583a012b583ae800">dl::Img::AddRect</a></div><div class="ttdeci">void AddRect(Image *img_tar, const Image *img_src, const RectU &amp;rect, const PointU &amp;tar_xy)</div><div class="ttdoc">添加另一个图像的部分到自己的位置上</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a70e0e680b145bd9c5ece340094528ff6"><div class="ttname"><a href="namespacedl_1_1_img.html#a70e0e680b145bd9c5ece340094528ff6">dl::Img::IsSupportFormat</a></div><div class="ttdeci">bool IsSupportFormat(std::string_view str, bool read)</div><div class="ttdoc">是否支持的格式</div><div class="ttdef"><b>定义</b> <a href="#l00040">dl_image.h:40</a></div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a85f0fbbca7b26c71e699634a37894247"><div class="ttname"><a href="namespacedl_1_1_img.html#a85f0fbbca7b26c71e699634a37894247">dl::Img::CvtEffect2Normal</a></div><div class="ttdeci">void CvtEffect2Normal(Image *img)</div><div class="ttdoc">特效图片转普通图片</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_a94260454a3fa1494872e38b46d98e310"><div class="ttname"><a href="namespacedl_1_1_img.html#a94260454a3fa1494872e38b46d98e310">dl::Img::CreateSvg</a></div><div class="ttdeci">Image * CreateSvg(std::string_view path_name, const Size &amp;size)</div><div class="ttdoc">创建图像 从svg</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_ab29ed4498e2aa2c166f1c0c88af07355"><div class="ttname"><a href="namespacedl_1_1_img.html#ab29ed4498e2aa2c166f1c0c88af07355">dl::Img::IsHaveTranslucent</a></div><div class="ttdeci">bool IsHaveTranslucent(const Image *img, const RectU &amp;rect)</div><div class="ttdoc">返回是否包含非透明颜色</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_ab63d0ee77f71e56c8da9ecf18075279c"><div class="ttname"><a href="namespacedl_1_1_img.html#ab63d0ee77f71e56c8da9ecf18075279c">dl::Img::REGEX_FORMAT</a></div><div class="ttdeci">constexpr std::string_view REGEX_FORMAT</div><div class="ttdef"><b>定义</b> <a href="#l00052">dl_image.h:52</a></div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_ac31f74c8147b30fcc8fd5f4176458fdc"><div class="ttname"><a href="namespacedl_1_1_img.html#ac31f74c8147b30fcc8fd5f4176458fdc">dl::Img::SaveKtx</a></div><div class="ttdeci">bool SaveKtx(std::span&lt; Image * &gt; vec_img, std::string_view path_name)</div><div class="ttdoc">保存到图像(ktx格式)</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_acd221e47cab450ce10c9a93a66de7134"><div class="ttname"><a href="namespacedl_1_1_img.html#acd221e47cab450ce10c9a93a66de7134">dl::Img::Save</a></div><div class="ttdeci">bool Save(const Image *img, std::string_view path_name)</div><div class="ttdoc">保存到图像</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_adc377cb0ff3212e35fbdfeb9b2135a9c"><div class="ttname"><a href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9c">dl::Img::ExtendMode</a></div><div class="ttdeci">ExtendMode</div><div class="ttdef"><b>定义</b> <a href="#l00151">dl_image.h:152</a></div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_adc377cb0ff3212e35fbdfeb9b2135a9ca529e9e0beb5f85d1f132917c1a09860c"><div class="ttname"><a href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9ca529e9e0beb5f85d1f132917c1a09860c">dl::Img::ExtendMode::ZERO</a></div><div class="ttdeci">@ ZERO</div><div class="ttdef"><b>定义</b> <a href="#l00153">dl_image.h:153</a></div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_adc377cb0ff3212e35fbdfeb9b2135a9cae8606d021da140a92c7eba8d9b8af84f"><div class="ttname"><a href="namespacedl_1_1_img.html#adc377cb0ff3212e35fbdfeb9b2135a9cae8606d021da140a92c7eba8d9b8af84f">dl::Img::ExtendMode::COPY</a></div><div class="ttdeci">@ COPY</div><div class="ttdef"><b>定义</b> <a href="#l00154">dl_image.h:154</a></div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_ae99825aa0ea6f633298f22aa0ab08f18"><div class="ttname"><a href="namespacedl_1_1_img.html#ae99825aa0ea6f633298f22aa0ab08f18">dl::Img::Create</a></div><div class="ttdeci">Image * Create(const Size &amp;size, const Color &amp;col)</div><div class="ttdoc">创建图像</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_afd30be23ae18721c5e10b06f74ae5f71"><div class="ttname"><a href="namespacedl_1_1_img.html#afd30be23ae18721c5e10b06f74ae5f71">dl::Img::Resize</a></div><div class="ttdeci">Image * Resize(const Image *img, const Size &amp;size)</div><div class="ttdoc">缩放图像</div></div>
<div class="ttc" id="anamespacedl_1_1_img_html_afed846b34f08fe6367280bdd9c2a646f"><div class="ttname"><a href="namespacedl_1_1_img.html#afed846b34f08fe6367280bdd9c2a646f">dl::Img::BuildBorder</a></div><div class="ttdeci">void BuildBorder(Image *img, unsigned i)</div><div class="ttdoc">填充边缘像素按最近的像素</div></div>
<div class="ttc" id="anamespacedl_html"><div class="ttname"><a href="namespacedl.html">dl</a></div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00021">dl_array.h:22</a></div></div>
<div class="ttc" id="anamespacedl_html_a2deb3e79723ed0c188c47443a48744b7"><div class="ttname"><a href="namespacedl.html#a2deb3e79723ed0c188c47443a48744b7">dl::Float</a></div><div class="ttdeci">float Float</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00038">dl_type_def.h:38</a></div></div>
<div class="ttc" id="anamespacedl_html_a6347394cca146fd6b8fedf1d3545de59"><div class="ttname"><a href="namespacedl.html#a6347394cca146fd6b8fedf1d3545de59">dl::PointU</a></div><div class="ttdeci">Point2U PointU</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00034">dl_type_def.h:34</a></div></div>
<div class="ttc" id="anamespacedl_html_ab0aa26817739678b786d66b6c9f50ae7"><div class="ttname"><a href="namespacedl.html#ab0aa26817739678b786d66b6c9f50ae7">dl::Color</a></div><div class="ttdeci">Array&lt; float, 4 &gt; Color</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00058">dl_type_def.h:58</a></div></div>
<div class="ttc" id="anamespacedl_html_ab4acc6e28a53b5034ae7786d915c2b1e"><div class="ttname"><a href="namespacedl.html#ab4acc6e28a53b5034ae7786d915c2b1e">dl::Image</a></div><div class="ttdeci">Vector2&lt; uint32_t, unsigned &gt; Image</div><div class="ttdef"><b>定义</b> <a href="#l00028">dl_image.h:28</a></div></div>
<div class="ttc" id="anamespacedl_html_ac630b67756cfd3694b7885c5958e52a7"><div class="ttname"><a href="namespacedl.html#ac630b67756cfd3694b7885c5958e52a7">dl::RectU</a></div><div class="ttdeci">Point4U RectU</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00051">dl_type_def.h:51</a></div></div>
<div class="ttc" id="anamespacedl_html_af4b025efbd5dae0045cce4cbc9546416"><div class="ttname"><a href="namespacedl.html#af4b025efbd5dae0045cce4cbc9546416">dl::Size</a></div><div class="ttdeci">PointU Size</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00035">dl_type_def.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>