PHPでは、 ImageColorallocatealpha関数を使用して画像に色を割り当て、画像の透明性の設定をサポートします。 PNG形式は透明性をサポートするため、この関数はPNG画像の処理によく使用されます。この関数を使用することにより、画像内のピクセルの透明度を備えた色を設定し、透明な背景または部分的に透明な要素を持つ画像を作成できます。
ImageColorallocatealpha関数は、次のように定義されています。
int imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha)
$ image :ターゲット画像リソース、通常はimageCreatefrommpng()やimageCreatetruecolor()などの関数によって作成された画像リソースです。
$ red 、 $ green 、 $ blue :色のRGBコンポーネント、0から255の範囲の値。
$ alpha :0から127の範囲の色の透明度値は、完全に不透明であり、127は完全に透明なことを意味します。
ImageColorallocatealpha関数を使用してPNG画像に透明な色を追加する方法を示す簡単な例を示します。
<?php
// ロードa PNG 画像
$image = imagecreatefrompng('input.png');
// 透明性のある色を割り当てます
$red = 255;
$green = 0;
$blue = 0;
$alpha = 63; // 半透明の赤
$transparentRed = imagecolorallocatealpha($image, $red, $green, $blue, $alpha);
// 在画像中绘制一个半透明的矩形
imagefilledrectangle($image, 50, 50, 200, 200, $transparentRed);
// 设置画像为 PNG 形式,出力を保存します
imagesavealpha($image, true); // 確認する alpha チャネル保存
imagepng($image, 'output.png');
// 無料のメモリ
imagedestroy($image);
?>
画像の読み込み:最初にImageCreateFrommpng()関数を介してPNG画像をロードします。画像が別の形式(jpegなど)の場合は、 imagecreatefromjpeg()を使用できます。
色の割り当て: ImageColorallocatealpha関数を介して、赤を作成し、その透明度を63(つまり、半透明)に設定します。
グラフの描画:画像フィルドレクトング関数を使用して、画像に半透明の長方形を描画します。
画像を保存します: png png()を介してPNG形式で処理された画像を保存し、透明性情報が保持されていることを確認します( ImageAvealpha()関数を介して)。
フリーメモリ:最後に、 Imagedestroy()を介して画像リソースをリリースします。
PNG画像では、特に画像を部分的に透明にしたり、背景がない場合に透明性が非常に重要です。 PNG形式は透明チャネル(アルファチャネル)をサポートしていますが、JPG形式はサポートしていません。
透明度が小さいほど、色が不透明です。透明度が大きいほど、色が透明になります。
ImageColorallocatealphaとImageColorAllocateの違いは、後者が透明性をサポートせず、透明度を必要としない画像にのみ適していることです。
アイコンまたはロゴがあり、その背景を透明にするか、一部の領域で半透明の効果を作成したいとします。これらの効果は、特にWeb開発におけるグラフィックスの処理と生成に適したImageColorallocatealphaを使用して簡単に実現できます。