Webデザインと動的な画像生成では、透明な効果は画像の美学と実用性を大幅に改善できます。 PHPのGDライブラリは、非常に有用な機能ImageColorAllocatealpha()を提供します。これは、透明度のある色を作成するために使用できるため、動的に生成された画像で透明な効果を実現できます。この記事では、この関数を使用してアイコンに透明な境界線を追加する方法について説明します。
ImageColorallocatealpha()を使用するには、最初にPHP環境でGDライブラリが有効になっていることを確認する必要があります。次のコードで確認できます。
<?php
if (extension_loaded('gd')) {
echo "GD library is enabled.";
} else {
echo "GD library is not enabled.";
}
?>
出力プロンプトGDライブラリが有効になっている場合は、続行できます。
この関数の基本的な構文は次のとおりです。
int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
パラメーター説明:
$画像:GD画像リソース。
$ red 、 $ green 、 $ blue :rgb value of Color(0-255)。
$ alpha :透明性(0は完全に不透明で、127は完全に透明です)。
次に、完全な例を書きましょう。100x100ピクセルの円形アイコンを生成し、その周りに透明な境界線の円を描きます。
<?php
// 作成する100x100ピクセルの真の色の画像
$width = 100;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// 開けるalphaチャネル保存
imagesavealpha($image, true);
// 作成する完全透明的背景色
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
// 作成する主图标颜色(たとえば、青)
$blue = imagecolorallocatealpha($image, 0, 102, 204, 0); // 不透明な青
// 作成する透明边框颜色(たとえば、ライトグレー,しかし、透明性を備えています)
$border = imagecolorallocatealpha($image, 200, 200, 200, 80);
// 透明な境界で円を描きます
$radius = 40;
$centerX = $width / 2;
$centerY = $height / 2;
// 境界線を描きます(少し大きくて丸い)
imagefilledellipse($image, $centerX, $centerY, $radius * 2 + 10, $radius * 2 + 10, $border);
// メインボディサークルを描きます
imagefilledellipse($image, $centerX, $centerY, $radius * 2, $radius * 2, $blue);
// の出力画像PNG書類(透明性を維持します)
header('Content-Type: image/png');
imagepng($image);
// 無料のメモリ
imagedestroy($image);
?>
上記のコードをicon.phpとして保存し、サーバー(たとえばhttps://m66.net/icon.php )に配置し、ブラウザにアクセスすると、生成されたアイコンが表示されます。
知らせ:
ImagesAvealpha()を使用して、PNG形式が保存されているときに透明な情報が保持されるようにしました。
境界線は明るい灰色の色を使用し、透明度が高く(80)、これはメインブルーサークルとは対照的です。
ImageColorAllocatealpha()では、アイコン、境界線、またはその他の視覚効果であろうと、動的に生成された画像に透明な要素を簡単に追加できます。 PHPとGDライブラリを組み合わせることで、より複雑なニーズを満たすために、さまざまな背景に適合した透明な画像をバッチ生成することもできます。
もっと学習することに興味がある場合は、公式ドキュメント: PHP GD Function Manualを参照できます。