当前位置: 首页> 最新文章列表> 如何利用 imagegif() 配合 imagecreate() 创建并输出 GIF 图片?

如何利用 imagegif() 配合 imagecreate() 创建并输出 GIF 图片?

gitbox 2025-09-12
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 本文档由 PHP 程序输出</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Content-Type: text/html; charset=utf-8"</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>如何利用 </span><span><span class="hljs-title function_ invoke__">imagegif</span></span><span>() 配合 </span><span><span class="hljs-title function_ invoke__">imagecreate</span></span><span>() 创建并输出 GIF 图片?</h1>

<p>在 PHP 的图像处理扩展 GD 库中,<code></span><span><span class="hljs-title function_ invoke__">imagecreate</span></span><span>()

其中,$width$height 分别表示图像的宽度和高度。创建成功后,就可以在这个画布上进行绘制操作。

2. imagecolorallocate() 分配颜色

在生成画布后,我们需要为图像分配颜色。imagecolorallocate() 函数用于在图像中创建一种颜色,其语法为:

</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$red</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$green</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$blue</span></span><span> )

例如,imagecolorallocate($img, 255, 0, 0) 表示在图像中创建红色。

3. imagegif() 输出图像

imagegif() 函数负责将图像输出为 GIF 格式,可以直接输出到浏览器,也可以保存为文件。语法为:

</span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagegif</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span> [, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span> ] )

如果省略 $filename,则图像会直接输出到浏览器。

4. 示例代码

下面我们通过示例演示如何利用 imagecreate()imagegif() 来创建一张简单的 GIF 图片:

&lt;?php
</span><span><span class="hljs-comment">// 告诉浏览器输出的是 GIF 图片</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Content-Type: image/gif"</span></span><span>);

</span><span><span class="hljs-comment">// 创建一个 200x100 的画布</span></span><span>
</span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreate</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);

</span><span><span class="hljs-comment">// 分配背景颜色(白色)</span></span><span>
</span><span><span class="hljs-variable">$white</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>);

</span><span><span class="hljs-comment">// 分配绘制颜色(蓝色)</span></span><span>
</span><span><span class="hljs-variable">$blue</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>);

</span><span><span class="hljs-comment">// 在画布上写文字</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagestring</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">40</span></span><span>, </span><span><span class="hljs-string">"Hello GIF"</span></span><span>, </span><span><span class="hljs-variable">$blue</span></span><span>);

</span><span><span class="hljs-comment">// 输出为 GIF 格式</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagegif</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);

</span><span><span class="hljs-comment">// 释放资源</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);
?&gt;

5. 总结

通过 imagecreate() 创建画布,使用 imagecolorallocate() 分配颜色,再配合 imagegif() 输出图像,就能轻松生成 GIF 图片。这个方法常用于验证码、动态图表或其他需要动态生成图片的场景。