関数・クラス解説
imagecolorallocatealpha
version:PHP 4 >= 4.3.2, PHP 5, PHP 7 (公式)画像で使用する色を透過度を指定して作成する
公式リファレンス
書式
imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int
説明
imagecolorallocatealpha() は、 透明度を指定するパラメータ alpha が追加されている以外は imagecolorallocate() と等価です。
パラメータ
- image
- imagecreatetruecolor()のような画像作成関数が返す画像リソース。
- red
- 赤コンポーネントの値。
- green
- 緑コンポーネントの値。
- blue
- 青コンポーネントの値。
- alpha
- 0 から 127 までの値。 0 は完全に不透明な状態。 127 は完全に透明な状態を表します。
返値
色 ID、あるいは作成に失敗した場合に FALSE を返します。 警告この関数は論理値FALSE を返す可能性がありますが、FALSE として評価される値を返す可能性もあります。詳細については 論理値のセクションを参照してください。この関数の返り値を調べるには===演算子 を使用してください。
注意
警告この関数は論理値FALSE を返す可能性がありますが、FALSE として評価される値を返す可能性もあります。詳細については 論理値のセクションを参照してください。この関数の返り値を調べるには===演算子 を使用してください。
サンプル
例1 imagecolorallocatealpha() の使用例
$size = 300;
$image=imagecreatetruecolor($size, $size);
// 白い背景で黒いふちどりにします
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;
// alpha 値を指定して色を作成します
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// 3つの重なる円を描きます
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);
// 正しいヘッダを出力するのを忘れないように!
header('Content-Type: image/png');
// 最後に、結果を出力します
imagepng($image);
imagedestroy($image);
上の例の出力は、たとえば以下のようになります。
例2 imagecolorallocatealpha() 関数を使い、典型的なアルファ値を変換する
アルファの値を 0 にすると、通常は完全に透過なピクセルが指定されますし、 アルファチャネルは 8bit です。このようなアルファ値を imagecolorallocatealpha() 関数と互換性がある値に変換するには、 いくつか簡単な計算をすれば十分です:
$alpha8 = 0; // 完全に透過
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // 完全に不透明
var_dump(127 - ($alpha8 >> 1));
上の例の出力は以下となります。
int(127)
int(0)
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール