mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-19 14:22:43 +08:00
476 lines
37 KiB
HTML
476 lines
37 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||
<title>对图像使用过滤器</title>
|
||
</head>
|
||
<body class="docs"><div id="layout">
|
||
<div id="layout-content"><div id="function.imagefilter" class="refentry">
|
||
<div class="refnamediv">
|
||
<h1 class="refname">imagefilter</h1>
|
||
<p class="verinfo">(PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">imagefilter</span> — <span class="dc-title">对图像使用过滤器</span></p>
|
||
|
||
</div>
|
||
<div class="refsect1 description" id="refsect1-function.imagefilter-description">
|
||
<h3 class="title">说明</h3>
|
||
<div class="methodsynopsis dc-description">
|
||
<span class="methodname"><strong>imagefilter</strong></span>
|
||
( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$src_im</code></span>
|
||
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$filtertype</code></span>
|
||
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$arg1</code></span>
|
||
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$arg2</code></span>
|
||
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$arg3</code></span>
|
||
]]] ) : <span class="type">bool</span></div>
|
||
|
||
<p class="para rdfs-comment">
|
||
<span class="function"><strong>imagefilter()</strong></span> 把过滤器
|
||
<code class="parameter">filtertype</code> 应用到图像上,在需要时使用
|
||
<code class="parameter">arg1</code>,<code class="parameter">arg2</code> 和
|
||
<code class="parameter">arg3</code>。
|
||
</p>
|
||
<p class="para">
|
||
<code class="parameter">filtertype</code> 可以是下列中的一个:
|
||
<ul class="itemizedlist">
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_NEGATE</code>:将图像中所有颜色反转。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_GRAYSCALE</code>:将图像转换为灰度的。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_BRIGHTNESS</code>:改变图像的亮度。用
|
||
<code class="parameter">arg1</code> 设定亮度级别。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_CONTRAST</code>:改变图像的对比度。用
|
||
<code class="parameter">arg1</code> 设定对比度级别。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_COLORIZE</code>:与
|
||
<code class="parameter">IMG_FILTER_GRAYSCALE</code> 类似,不过可以指定颜色。用
|
||
<code class="parameter">arg1</code>,<code class="parameter">arg2</code> 和
|
||
<code class="parameter">arg3</code> 分别指定
|
||
<code class="parameter">red</code>,<code class="parameter">blue</code> 和
|
||
<code class="parameter">green</code>。每种颜色范围是 0 到 255。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_EDGEDETECT</code>:用边缘检测来突出图像的边缘。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_EMBOSS</code>:使图像浮雕化。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_GAUSSIAN_BLUR</code>:用高斯算法模糊图像。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_SELECTIVE_BLUR</code>:模糊图像。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_MEAN_REMOVAL</code>:用平均移除法来达到轮廓效果。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<code class="parameter">IMG_FILTER_SMOOTH</code>:使图像更柔滑。用
|
||
<code class="parameter">arg1</code> 设定柔滑级别。
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</p>
|
||
<blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara">此函数仅在与 GD 库捆绑编译的 PHP 版本中可用。</span></p></blockquote>
|
||
<p class="para">
|
||
成功时返回 <strong><code>TRUE</code></strong>, 或者在失败时返回 <strong><code>FALSE</code></strong>。
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="example-3697">
|
||
<p><strong>Example #1 <span class="function"><strong>imagefilter()</strong></span> 灰度例子</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br />$im </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'dave.png'</span><span style="color: #007700">);<br />if (</span><span style="color: #0000BB">$im </span><span style="color: #007700">&& </span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_GRAYSCALE</span><span style="color: #007700">)) {<br /> echo </span><span style="color: #DD0000">'Image converted to grayscale.'</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">imagepng</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #DD0000">'dave.png'</span><span style="color: #007700">);<br />} else {<br /> echo </span><span style="color: #DD0000">'Conversion to grayscale failed.'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="example-3698">
|
||
<p><strong>Example #2 <span class="function"><strong>imagefilter()</strong></span> 亮度例子</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br />$im </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'sean.png'</span><span style="color: #007700">);<br />if (</span><span style="color: #0000BB">$im </span><span style="color: #007700">&& </span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_BRIGHTNESS</span><span style="color: #007700">, </span><span style="color: #0000BB">20</span><span style="color: #007700">)) {<br /> echo </span><span style="color: #DD0000">'Image brightness changed.'</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">imagepng</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #DD0000">'sean.png'</span><span style="color: #007700">);<br />} else {<br /> echo </span><span style="color: #DD0000">'Image brightness change failed.'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="example-3699">
|
||
<p><strong>Example #3 <span class="function"><strong>imagefilter()</strong></span> 上彩例子</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br />$im </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'philip.png'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* R, G, B, so 0, 255, 0 is green */<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$im </span><span style="color: #007700">&& </span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_COLORIZE</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">255</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">)) {<br /> echo </span><span style="color: #DD0000">'Image successfully shaded green.'</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">imagepng</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #DD0000">'philip.png'</span><span style="color: #007700">);<br />} else {<br /> echo </span><span style="color: #DD0000">'Green shading failed.'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
</div>
|
||
|
||
<div class="refsect1 parameters" id="refsect1-function.imagefilter-parameters">
|
||
<h3 class="title">参数</h3>
|
||
<p class="para">
|
||
<dl>
|
||
|
||
<dt>
|
||
<code class="parameter">image</code></dt>
|
||
|
||
<dd>
|
||
<p class="para">由图象创建函数(例如<span class="function"><a href="imagecreatetruecolor.html" class="function">imagecreatetruecolor()</a></span>)返回的图象资源。</p></dd>
|
||
|
||
|
||
<dt>
|
||
<code class="parameter">filtertype</code></dt>
|
||
|
||
<dd>
|
||
|
||
<p class="para">
|
||
<code class="parameter">filtertype</code> can be one of the following:
|
||
<ul class="itemizedlist">
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_NEGATE</code></strong>: Reverses all colors of
|
||
the image.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_GRAYSCALE</code></strong>: Converts the image into
|
||
grayscale.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_BRIGHTNESS</code></strong>: Changes the brightness
|
||
of the image. Use <code class="parameter">arg1</code> to set the level of
|
||
brightness.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_CONTRAST</code></strong>: Changes the contrast of
|
||
the image. Use <code class="parameter">arg1</code> to set the level of
|
||
contrast.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_COLORIZE</code></strong>: Like
|
||
<strong><code>IMG_FILTER_GRAYSCALE</code></strong>, except you can specify the
|
||
color. Use <code class="parameter">arg1</code>, <code class="parameter">arg2</code> and
|
||
<code class="parameter">arg3</code> in the form of
|
||
<code class="parameter">red</code>, <code class="parameter">blue</code>,
|
||
<code class="parameter">green</code> and <code class="parameter">arg4</code> for the
|
||
<code class="parameter">alpha</code> channel. The range for each color is 0 to 255.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_EDGEDETECT</code></strong>: Uses edge detection to
|
||
highlight the edges in the image.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_EMBOSS</code></strong>: Embosses the image.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_GAUSSIAN_BLUR</code></strong>: Blurs the image using
|
||
the Gaussian method.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_SELECTIVE_BLUR</code></strong>: Blurs the image.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_MEAN_REMOVAL</code></strong>: Uses mean removal to
|
||
achieve a "sketchy" effect.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_SMOOTH</code></strong>: Makes the image smoother.
|
||
Use <code class="parameter">arg1</code> to set the level of smoothness.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_PIXELATE</code></strong>: Applies pixelation effect
|
||
to the image, use <code class="parameter">arg1</code> to set the block size
|
||
and <code class="parameter">arg2</code> to set the pixelation effect mode.
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</p>
|
||
</dd>
|
||
|
||
|
||
|
||
<dt>
|
||
<code class="parameter">arg1</code></dt>
|
||
|
||
<dd>
|
||
|
||
<p class="para">
|
||
<ul class="itemizedlist">
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_BRIGHTNESS</code></strong>: Brightness level.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_CONTRAST</code></strong>: Contrast level.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_COLORIZE</code></strong>: 红色成分的值。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_SMOOTH</code></strong>: Smoothness level.
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_PIXELATE</code></strong>: Block size in pixels.
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</p>
|
||
</dd>
|
||
|
||
|
||
|
||
<dt>
|
||
<code class="parameter">arg2</code></dt>
|
||
|
||
<dd>
|
||
|
||
<p class="para">
|
||
<ul class="itemizedlist">
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_COLORIZE</code></strong>: 绿色成分的值。
|
||
</span>
|
||
</li>
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_PIXELATE</code></strong>: Whether to use advanced pixelation
|
||
effect or not (defaults to <strong><code>FALSE</code></strong>).
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</p>
|
||
</dd>
|
||
|
||
|
||
|
||
<dt>
|
||
<code class="parameter">arg3</code></dt>
|
||
|
||
<dd>
|
||
|
||
<p class="para">
|
||
<ul class="itemizedlist">
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_COLORIZE</code></strong>: 蓝色成分的值。
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</p>
|
||
</dd>
|
||
|
||
|
||
|
||
<dt>
|
||
<code class="parameter">arg4</code></dt>
|
||
|
||
<dd>
|
||
|
||
<p class="para">
|
||
<ul class="itemizedlist">
|
||
<li class="listitem">
|
||
<span class="simpara">
|
||
<strong><code>IMG_FILTER_COLORIZE</code></strong>: Alpha channel, A value
|
||
between 0 and 127. 0 indicates completely opaque while 127 indicates
|
||
completely transparent.
|
||
</span>
|
||
</li>
|
||
</ul>
|
||
</p>
|
||
</dd>
|
||
|
||
|
||
</dl>
|
||
|
||
</p>
|
||
</div>
|
||
|
||
<div class="refsect1 returnvalues" id="refsect1-function.imagefilter-returnvalues">
|
||
<h3 class="title">返回值</h3>
|
||
<p class="para">
|
||
成功时返回 <strong><code>TRUE</code></strong>, 或者在失败时返回 <strong><code>FALSE</code></strong>。
|
||
</p>
|
||
</div>
|
||
|
||
<div class="refsect1 changelog" id="refsect1-function.imagefilter-changelog">
|
||
<h3 class="title">更新日志</h3>
|
||
<p class="para">
|
||
<table class="doctable informaltable">
|
||
|
||
<thead>
|
||
<tr>
|
||
<th>版本</th>
|
||
<th>说明</th>
|
||
</tr>
|
||
|
||
</thead>
|
||
|
||
<tbody class="tbody">
|
||
<tr>
|
||
<td>5.3.0</td>
|
||
<td>
|
||
Pixelation support (<strong><code>IMG_FILTER_PIXELATE</code></strong>) was added.
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>5.2.5</td>
|
||
<td>
|
||
Alpha support for <strong><code>IMG_FILTER_COLORIZE</code></strong> was added.
|
||
</td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
|
||
</table>
|
||
|
||
</p>
|
||
</div>
|
||
|
||
<div class="refsect1 examples" id="refsect1-function.imagefilter-examples">
|
||
<h3 class="title">范例</h3>
|
||
<p class="para">
|
||
<div class="example" id="example-3700">
|
||
<p><strong>Example #4 <span class="function"><strong>imagefilter()</strong></span> grayscale example</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br />$im </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'dave.png'</span><span style="color: #007700">);<br /><br />if(</span><span style="color: #0000BB">$im </span><span style="color: #007700">&& </span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_GRAYSCALE</span><span style="color: #007700">))<br />{<br /> echo </span><span style="color: #DD0000">'Image converted to grayscale.'</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">imagepng</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #DD0000">'dave.png'</span><span style="color: #007700">);<br />}<br />else<br />{<br /> echo </span><span style="color: #DD0000">'Conversion to grayscale failed.'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="example-3701">
|
||
<p><strong>Example #5 <span class="function"><strong>imagefilter()</strong></span> brightness example</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br />$im </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'sean.png'</span><span style="color: #007700">);<br /><br />if(</span><span style="color: #0000BB">$im </span><span style="color: #007700">&& </span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_BRIGHTNESS</span><span style="color: #007700">, </span><span style="color: #0000BB">20</span><span style="color: #007700">))<br />{<br /> echo </span><span style="color: #DD0000">'Image brightness changed.'</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">imagepng</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #DD0000">'sean.png'</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">);<br />}<br />else<br />{<br /> echo </span><span style="color: #DD0000">'Image brightness change failed.'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="example-3702">
|
||
<p><strong>Example #6 <span class="function"><strong>imagefilter()</strong></span> colorize example</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br />$im </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'philip.png'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* R, G, B, so 0, 255, 0 is green */<br /></span><span style="color: #007700">if(</span><span style="color: #0000BB">$im </span><span style="color: #007700">&& </span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_COLORIZE</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">255</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">))<br />{<br /> echo </span><span style="color: #DD0000">'Image successfully shaded green.'</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">imagepng</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #DD0000">'philip.png'</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">);<br />}<br />else<br />{<br /> echo </span><span style="color: #DD0000">'Green shading failed.'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="imagecrop.example.basic">
|
||
<p><strong>Example #7 <span class="function"><strong>imagefilter()</strong></span> negate example</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// Define our negate function so its portable for <br />// php versions without imagefilter()<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">negate</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">)<br />{<br /> if(</span><span style="color: #0000BB">function_exists</span><span style="color: #007700">(</span><span style="color: #DD0000">'imagefilter'</span><span style="color: #007700">))<br /> {<br /> return </span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_NEGATE</span><span style="color: #007700">);<br /> }<br /><br /> for(</span><span style="color: #0000BB">$x </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$x </span><span style="color: #007700">< </span><span style="color: #0000BB">imagesx</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">); ++</span><span style="color: #0000BB">$x</span><span style="color: #007700">)<br /> {<br /> for(</span><span style="color: #0000BB">$y </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$y </span><span style="color: #007700">< </span><span style="color: #0000BB">imagesy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">); ++</span><span style="color: #0000BB">$y</span><span style="color: #007700">)<br /> {<br /> </span><span style="color: #0000BB">$index </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecolorat</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">$x</span><span style="color: #007700">, </span><span style="color: #0000BB">$y</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$rgb </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecolorsforindex</span><span style="color: #007700">(</span><span style="color: #0000BB">$index</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$color </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecolorallocate</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">255 </span><span style="color: #007700">- </span><span style="color: #0000BB">$rgb</span><span style="color: #007700">[</span><span style="color: #DD0000">'red'</span><span style="color: #007700">], </span><span style="color: #0000BB">255 </span><span style="color: #007700">- </span><span style="color: #0000BB">$rgb</span><span style="color: #007700">[</span><span style="color: #DD0000">'green'</span><span style="color: #007700">], </span><span style="color: #0000BB">255 </span><span style="color: #007700">- </span><span style="color: #0000BB">$rgb</span><span style="color: #007700">[</span><span style="color: #DD0000">'blue'</span><span style="color: #007700">]);<br /><br /> </span><span style="color: #0000BB">imagesetpixel</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #0000BB">$x</span><span style="color: #007700">, </span><span style="color: #0000BB">$y</span><span style="color: #007700">, </span><span style="color: #0000BB">$color</span><span style="color: #007700">);<br /> }<br /> }<br /><br /> return(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$im </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefromjpeg</span><span style="color: #007700">(</span><span style="color: #DD0000">'kalle.jpg'</span><span style="color: #007700">);<br /><br />if(</span><span style="color: #0000BB">$im </span><span style="color: #007700">&& </span><span style="color: #0000BB">negate</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">))<br />{<br /> echo </span><span style="color: #DD0000">'Image successfully converted to negative colors.'</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">imagejpeg</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">, </span><span style="color: #DD0000">'kalle.jpg'</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$im</span><span style="color: #007700">);<br />}<br />else<br />{<br /> echo </span><span style="color: #DD0000">'Converting to negative colors failed.'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="example-3704">
|
||
<p><strong>Example #8 <span class="function"><strong>imagefilter()</strong></span> pixelate example</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// Load the PHP logo, we need to create two instances <br />// to show the differences<br /></span><span style="color: #0000BB">$logo1 </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'./php.png'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$logo2 </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatefrompng</span><span style="color: #007700">(</span><span style="color: #DD0000">'./php.png'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Create the image instance we want to show the <br />// differences on<br /></span><span style="color: #0000BB">$output </span><span style="color: #007700">= </span><span style="color: #0000BB">imagecreatetruecolor</span><span style="color: #007700">(</span><span style="color: #0000BB">imagesx</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo1</span><span style="color: #007700">) * </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">imagesy</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo1</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">// Apply pixelation to each instance, with a block <br />// size of 3<br /></span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo1</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_PIXELATE</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">imagefilter</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo2</span><span style="color: #007700">, </span><span style="color: #0000BB">IMG_FILTER_PIXELATE</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Merge the differences onto the output image<br /></span><span style="color: #0000BB">imagecopy</span><span style="color: #007700">(</span><span style="color: #0000BB">$output</span><span style="color: #007700">, </span><span style="color: #0000BB">$logo1</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">imagesx</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo1</span><span style="color: #007700">) - </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">imagesy</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo1</span><span style="color: #007700">) - </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">imagecopy</span><span style="color: #007700">(</span><span style="color: #0000BB">$output</span><span style="color: #007700">, </span><span style="color: #0000BB">$logo2</span><span style="color: #007700">, </span><span style="color: #0000BB">imagesx</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo2</span><span style="color: #007700">), </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">imagesx</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo2</span><span style="color: #007700">) - </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">imagesy</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo2</span><span style="color: #007700">) - </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$logo2</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Output the differences<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">'Content-Type: image/png'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">imagepng</span><span style="color: #007700">(</span><span style="color: #0000BB">$output</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">imagedestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">$output</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
<div class="example-contents"><p>以上例程的输出类似于:</p></div>
|
||
<div class="mediaobject">
|
||
|
||
<div class="imageobject">
|
||
<img src="images/21009b70229598c6a80eef8b45bf282b-imagefilterpixelate.png" alt="Output of example : imagefilter() pixelate" width="190" height="51" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</p>
|
||
</div>
|
||
|
||
<div class="refsect1 notes" id="refsect1-function.imagefilter-notes">
|
||
<h3 class="title">注释</h3>
|
||
<blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara">此函数仅在与 GD 库捆绑编译的 PHP 版本中可用。</span></p></blockquote>
|
||
</div>
|
||
|
||
<div class="refsect1 seealso" id="refsect1-function.imagefilter-seealso">
|
||
<h3 class="title">参见</h3>
|
||
<p class="para">
|
||
<ul class="simplelist">
|
||
<li class="member"><span class="function"><a href="imageconvolution.html" class="function" rel="rdfs-seeAlso">imageconvolution()</a> - 用系数 div 和 offset 申请一个 3x3 的卷积矩阵</span></li>
|
||
</ul>
|
||
</p>
|
||
</div>
|
||
|
||
</div></div></div></body></html> |