サンプル・プログラムの実行例
サンプル・プログラム
| text2image.php | サンプル・プログラム本体 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 1.3.0 | 2026/03/15 | PHP8.5対応, pahooInputData.php導入 |
| 1.2 | 2022/04/09 | PHP8対応,リファラ・チェック改良 |
| 1.11 | 2020/12/26 | IPAmj明朝フォントを追加 |
| 1.1 | 2016/01/09 | 初版 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 2.0.1 | 2025/08/11 | getParam() bug-fix |
| 2.0.0 | 2025/08/11 | pahooLoadEnv() 追加 |
| 1.9.0 | 2025/07/26 | getParam() 引数に$trim追加 |
| 1.8.1 | 2025/03/15 | validRegexPattern() debug |
| 1.8.0 | 2024/11/12 | validRegexPattern() 追加 |
準備:pahooInputData 関数群
また、各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを登録した .pahooEnv ファイルから読み込む関数 pahooLoadEnv を備えている。こちらについては、「各種クラウド連携サービス(WebAPI)の登録方法」をご覧いただきたい。
解説:画像をHTMLコンテンツに埋め込む
text2image.php
126: /**
127: * 文字列を画像に変換
128: * @param int $mode 0=画面出力,1=画像出力
129: * @param int $font 0|1(フォントの種類)
130: * @param string $str 文字列(UTF-8)
131: * @return string BASE64
132: */
133: function text2image($mode, $font, $str) {
134: // フォント・ファイル
135: static $table = array(
136: '../../../../common/font/mikachan-p.ttf',
137: '../../../../common/font/VL-PGothic-Regular.ttf',
138: '../../../../common/font/nicokaku_v1.ttf',
139: '../../../../common/font/ipamp.ttf'
140: );
141:
142: if ($str == '') return '';
143:
144: $res = '';
145: $size = 20;
146: $arr = imagettfbbox($size, 0, $table[$font], $str); // サイズ取得
147: $im = imagecreate($arr[4] - $arr[6] + 5, $arr[1] - $arr[7] + 5);
148: // イメージストリーム作成
149: $bgcolor = imagecolorallocate($im, 0xFF, 0xFF, 0xFF); // 背景色
150: imagecolortransparent($im, $bgcolor); // 透明化
151: $color = imagecolorallocate($im, 0x00, 0x00, 0xCC); // 文字色
152: imagettftext($im, $size, 0, -$arr[6], -$arr[7], $color, $table[$font], $str); // 出力
153:
154: if ($mode == 1) {
155: header("Content-type: image/png"); // MIMEはPNGで
156: imagepng($im); // ブラウザ表示
157: } else {
158: ob_start();
159: imagepng($im); // ブラウザ表示
160: $res = base64_encode(ob_get_clean());
161: }
162: // PHP8.5:非推奨関数
163: if (PHP_VERSION_ID < 80500) {
164: imagedestroy($im);
165: }
166:
167: return $res;
168: }
imgタグの中に画像データを埋め込むには、src属性の中に "data:image/png;base64," の後にBASE64エンコードされた画像データを並べれば良い。
そこで、組み込み関数 ob_start と imagepng を用い出力した画像データを、 ob_get_clean によって取得する。これを base64_encode に渡してやり、src属性の中に並べる。
参考サイト
- PHPでTrueTypeフォントを利用する:ぱふぅ家のホームページ
- PHPセキュリティ対策:メールアドレスを画像表示:ぱふぅ家のホームページ
- オリジナルフォント【みかちゃん】
- VL Gothic Font Family
- dataスキームURI生成
- C#でBase64の文字列にした画像をImageに変換して表示する:Symfoware
- 画像をBase64にしてWebページを高速化:Thought is free

今回は、HTMLコンテンツの中に画像データを埋め込む方法について解説する。この方法を使うことで、1つのPHPプログラムで、テキストと画像を混在するコンテンツを表示することができるようになる。
(2026年3月15日)PHP8.5対応, pahooInputData.php導入