現在の位置: ホーム> 最新記事一覧> PNG画像に透明な色を追加する方法

PNG画像に透明な色を追加する方法

M66 2025-05-18

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);
?>

コード解析

  1. 画像の読み込み:最初にImageCreateFrommpng()関数を介してPNG画像をロードします。画像が別の形式(jpegなど)の場合は、 imagecreatefromjpeg()を使用できます。

  2. 色の割り当てImageColorallocatealpha関数を介して、赤を作成し、その透明度を63(つまり、半透明)に設定します。

  3. グラフの描画画像フィルドレクトング関数を使用して、画像に半透明の長方形を描画します。

  4. 画像を保存しますpng png()を介してPNG形式で処理された画像を保存し、透明性情報が保持されていることを確認します( ImageAvealpha()関数を介して)。

  5. フリーメモリ:最後に、 Imagedestroy()を介して画像リソースをリリースします。

注意すべきこと

  • PNG画像では、特に画像を部分的に透明にしたり、背景がない場合に透明性が非常に重要です。 PNG形式は透明チャネル(アルファチャネル)をサポートしていますが、JPG形式はサポートしていません。

  • 透明度が小さいほど、色が不透明です。透明度が大きいほど、色が透明になります。

  • ImageColorallocatealphaImageColorAllocateの違いは、後者が透明性をサポートせず、透明度を必要としない画像にのみ適していることです。

サンプルアプリケーション

アイコンまたはロゴがあり、その背景を透明にするか、一部の領域で半透明の効果を作成したいとします。これらの効果は、特にWeb開発におけるグラフィックスの処理と生成に適したImageColorallocatealphaを使用して簡単に実現できます。