<span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
この例では、方法について説明します imagepalettecopy そして imagecreate 組み合わせて関数を使用します,
并通过实例代码展示其アプリケーションシナリオそして技巧。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
----------------------------------------
</span><span><span class="hljs-comment"># 方法 imagepalettecopy そして imagecreate 組み合わせて関数を使用します?実用的な例を共有します</span></span><span>
</span><span><span class="hljs-comment">## 1つ、`imagecreate` そして `imagepalettecopy` 導入</span></span><span>
- **`</span><span><span class="hljs-title function_ invoke__">imagecreate</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$height</span></span><span>)`**
用于创建1つ个基于调色板的图像(インデックスカラー画像),色数が限られている写真を処理するのに適しています。
返回值是1つ个图像资源句柄。
- **`</span><span><span class="hljs-title function_ invoke__">imagepalettecopy</span></span><span>(resource </span><span><span class="hljs-variable">$dst</span></span><span>, resource </span><span><span class="hljs-variable">$src</span></span><span>)`**
</span><span><span class="hljs-comment">## 二、アプリケーションシナリオ</span></span><span>
</span><span><span class="hljs-number">1</span></span><span>. **同じスタイルのサムネイルの一括生成**
</span><span><span class="hljs-number">2</span></span><span>. **インデックス付き画像のパレット同期**
複数のインデックス付き画像をマージまたは比較する必要がある場合,调色板保持1つ致非常重要。
</span><span><span class="hljs-comment">## 三つ、コードの例</span></span><span>
```php
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ソース画像を作成します(インデックスカラー)</span></span><span>
</span><span><span class="hljs-variable">$src</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">200</span></span><span>);
</span><span><span class="hljs-variable">$red</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$src</span></span><span>, </span><span><span class="hljs-number">255</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-variable">$green</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$src</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-number">0</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">$src</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__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$src</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-variable">$red</span></span><span>);
</span><span><span class="hljs-comment">// ターゲット画像を作成します(インデックスカラー)</span></span><span>
</span><span><span class="hljs-variable">$dst</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">200</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepalettecopy</span></span><span>(</span><span><span class="hljs-variable">$dst</span></span><span>, </span><span><span class="hljs-variable">$src</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$dst</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-variable">$blue</span></span><span>);
</span><span><span class="hljs-comment">// 比較のための出力写真</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Content-Type: image/png"</span></span><span>);
</span><span><span class="hljs-comment">// ここにはターゲット画像のみが出力されます,必要に応じて2つの画像を保存できます</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$dst</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">$src</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$dst</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ImageCreateとImagePalettecopyの組み合わせにより、複数のインデックス画像間で同じカラーパレットを簡単に共有でき、同じ色を手動で割り当てる重複作業を回避できます。この方法は、バッチ処理、カラーパレットの同期、視覚的な均一性の維持などのシナリオで非常に実用的です。これらの機能の使用を習得すると、PHP画像処理プロジェクトでカラーデータをより効率的に管理できます。
<span></span>