teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

実行結果を追記しました

2021/07/24 04:22

投稿

ockeghem
ockeghem

スコア11710

answer CHANGED
@@ -1,3 +1,35 @@
1
1
  直接の回答ではありませんが、imagettftextで必要なFreeTypeを有効にしてPHPをビルドしてphpinfoを表示したところ、下記の赤枠で囲った部分が表示されます。phpinfoを確認してみることをお勧めします。
2
2
 
3
- ![イメージ説明](41e0dcf3583c79ef01ae40d319f16e60.png)
3
+ ![イメージ説明](41e0dcf3583c79ef01ae40d319f16e60.png)
4
+
5
+ ---
6
+ (追記)
7
+
8
+ PHP-8.0.0にFreeTypeを追加した環境で、下記のプログラムを実行したところ正常に動きました。環境依存ではあるでしょうが、フォントを絶対パスで指定してみたらどうでしょうか。
9
+
10
+ ```PHP
11
+ <?php
12
+ header("Content-type: image/png");
13
+
14
+ $width = 600;
15
+ $height = 200;
16
+
17
+ $img = imagecreatetruecolor($width, $height);
18
+ $blue = imagecolorallocate($img, 200, 200, 255);
19
+ imagefilledrectangle($img, 0, 0, $width-1, $height-1, $blue);
20
+
21
+ $x = 100;
22
+ $y = 100;
23
+ $text = "愛されて豊穣の日本語フォント";
24
+
25
+ // $font = "fonts/mplus-1mn-bold.ttf";//この部分
26
+ $font = "/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf"; // IPAフォントを絶対パスで指定
27
+ $black = imagecolorallocate($img, 0, 0, 0);
28
+ imagettftext($img, 20, 0, $x, $y, $black, $font, $text);
29
+
30
+ imagepng($img);
31
+ imagedestroy($img);
32
+ ```
33
+
34
+ 実行結果
35
+ ![イメージ説明](b0fc6f0cd4a0c4a5e81ceec7bea1d32d.png)