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

質問編集履歴

7

質問文を追加しました。

2016/12/27 11:22

投稿

daisy
daisy

スコア30

title CHANGED
File without changes
body CHANGED
@@ -98,4 +98,13 @@
98
98
  //imagepng($im);//文字化けした文字が一緒に表示されてしまうのでコメントアウト。
99
99
  //imagedestroy($im);
100
100
  ?>
101
+
102
+ ```
103
+ - pngをファイルに保存する。
104
+ pngをファイルに保存するときは、以下のプログラムを使いました。
105
+ このプログラムを実行すると、phpファイルと同じ階層に120*20pxのtest.pngが作成されました。
106
+ ```PHP
107
+ <?php
108
+ $im = @imagecreatetruecolor(120, 20);
109
+ imagepng($im, "test.png");
101
110
  ```

6

情報の追加をしました。

2016/12/27 11:22

投稿

daisy
daisy

スコア30

title CHANGED
File without changes
body CHANGED
@@ -34,12 +34,35 @@
34
34
  ?>
35
35
  ```
36
36
  ###ためしたこと
37
- 0. headerの位置をimagepngの直前にする。
37
+ - headerの位置をimagepngの直前にする。
38
- 0. headerの位置をimagedestroyの直後にする。
38
+ - headerの位置をimagedestroyの直後にする。
39
- 0. headerの位置をプログラムの先頭にする。
39
+ - headerの位置をプログラムの先頭にする。
40
- 0. $fontのパスを絶対パス(```C:\Windows\Fonts\ARIALNB.TTF```と```C:\xampp\htdocs\arial.ttf```)を指定する。
40
+ - $fontのパスを絶対パス(```C:\Windows\Fonts\ARIALNB.TTF```と```C:\xampp\htdocs\arial.ttf```)を指定する。
41
- 0. $fontを```dirname(__FILE__) . 'arial.ttf'```もしくは```__DIR__ . 'arial.ttf'```とする。
41
+ - $fontを```dirname(__FILE__) . 'arial.ttf'```もしくは```__DIR__ . 'arial.ttf'```とする。
42
+ - ```error_reporting(E_ALL)```でエラーが表示されないか確認する。
43
+ - ```phpinfo()```と```gd_info()```でGDライブラリがインストールされているか確認する。
44
+ ####phpinfo()の結果
45
+ ![phpinfoの結果](faa226d7c670bd9072bd54244ec7df5b.png)
46
+ ####gd_info()の結果
47
+ ```PHP
48
+ Array
49
+ (
50
+ [GD Version] => bundled (2.1.0 compatible)
51
+ [FreeType Support] => 1
52
+ [FreeType Linkage] => with freetype
53
+ [GIF Read Support] => 1
54
+ [GIF Create Support] => 1
55
+ [JPEG Support] => 1
56
+ [PNG Support] => 1
57
+ [WBMP Support] => 1
58
+ [XPM Support] => 1
59
+ [XBM Support] => 1
60
+ [WebP Support] => 1
61
+ [JIS-mapped Japanese Font Support] =>
62
+ )
63
+
64
+ ```
42
- 0. filesize($font)の実行。
65
+ - filesize($font)の実行。
43
66
  ####filesize($font)の実行
44
67
  以下のようにプログラムを編集して、filesize($font)を表示しました。
45
68
  $fontのパスは```C:\Windows\Fonts\ARIALNB.TTF```と```C:\xampp\htdocs\arial.ttf```の両方を試しました。

5

file\(\$path\)の追記

2016/12/27 11:10

投稿

daisy
daisy

スコア30

title CHANGED
File without changes
body CHANGED
@@ -37,12 +37,13 @@
37
37
  0. headerの位置をimagepngの直前にする。
38
38
  0. headerの位置をimagedestroyの直後にする。
39
39
  0. headerの位置をプログラムの先頭にする。
40
- 0. $fontのパスを絶対パス(C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttf)を指定する。
40
+ 0. $fontのパスを絶対パス(```C:\Windows\Fonts\ARIALNB.TTF``````C:\xampp\htdocs\arial.ttf```)を指定する。
41
41
  0. $fontを```dirname(__FILE__) . 'arial.ttf'```もしくは```__DIR__ . 'arial.ttf'```とする。
42
42
  0. filesize($font)の実行。
43
43
  ####filesize($font)の実行
44
44
  以下のようにプログラムを編集して、filesize($font)を表示しました。
45
+ $fontのパスは```C:\Windows\Fonts\ARIALNB.TTF```と```C:\xampp\htdocs\arial.ttf```の両方を試しました。
45
- 実行すると**367112**という文字が表示されました。
46
+ 実行するとどちらのパスを指定した場合も**367112**という文字が表示されました。
46
47
  ```PHP
47
48
  <?php
48
49
  // コンテントタイプを設定します
@@ -60,7 +61,7 @@
60
61
  // 描画する文字列
61
62
  $text = 'Testing...';
62
63
  // フォント自身のパスでパスを置き換えます
63
- $font = 'arial.ttf';
64
+ $font = 'arial.ttf';//`C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttfで試す。
64
65
 
65
66
  // テキストに影を付けます
66
67
  imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

4

追記の追加

2016/12/27 10:44

投稿

daisy
daisy

スコア30

title CHANGED
File without changes
body CHANGED
@@ -38,4 +38,40 @@
38
38
  0. headerの位置をimagedestroyの直後にする。
39
39
  0. headerの位置をプログラムの先頭にする。
40
40
  0. $fontのパスを絶対パス(C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttf)を指定する。
41
- 0. $fontを```dirname(__FILE__) . 'arial.ttf'```もしくは```__DIR__ . 'arial.ttf'```とする。
41
+ 0. $fontを```dirname(__FILE__) . 'arial.ttf'```もしくは```__DIR__ . 'arial.ttf'```とする。
42
+ 0. filesize($font)の実行。
43
+ ####filesize($font)の実行
44
+ 以下のようにプログラムを編集して、filesize($font)を表示しました。
45
+ 実行すると**367112**という文字が表示されました。
46
+ ```PHP
47
+ <?php
48
+ // コンテントタイプを設定します
49
+ //header('Content-Type: image/png');//headerをコメントアウト
50
+
51
+ // 画像を生成します
52
+ $im = imagecreatetruecolor(400, 30);
53
+
54
+ // いくつかの色を生成します
55
+ $white = imagecolorallocate($im, 255, 255, 255);
56
+ $grey = imagecolorallocate($im, 128, 128, 128);
57
+ $black = imagecolorallocate($im, 0, 0, 0);
58
+ imagefilledrectangle($im, 0, 0, 399, 29, $white);
59
+
60
+ // 描画する文字列
61
+ $text = 'Testing...';
62
+ // フォント自身のパスでパスを置き換えます
63
+ $font = 'arial.ttf';
64
+
65
+ // テキストに影を付けます
66
+ imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
67
+
68
+ // テキストを追加します
69
+ imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
70
+
71
+ echo filesize($font);//ファイルサイズ表示
72
+
73
+ // imagepng() を使用して imagejpeg() よりもクリアなテキストにします
74
+ //imagepng($im);//文字化けした文字が一緒に表示されてしまうのでコメントアウト。
75
+ //imagedestroy($im);
76
+ ?>
77
+ ```

3

ためしたことを追加しました。

2016/12/27 10:40

投稿

daisy
daisy

スコア30

title CHANGED
File without changes
body CHANGED
@@ -37,4 +37,5 @@
37
37
  0. headerの位置をimagepngの直前にする。
38
38
  0. headerの位置をimagedestroyの直後にする。
39
39
  0. headerの位置をプログラムの先頭にする。
40
- 0. $fontのパスを絶対パス(C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttf)を指定する。
40
+ 0. $fontのパスを絶対パス(C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttf)を指定する。
41
+ 0. $fontを```dirname(__FILE__) . 'arial.ttf'```もしくは```__DIR__ . 'arial.ttf'```とする。

2

いろいろ変更

2016/12/27 10:17

投稿

daisy
daisy

スコア30

title CHANGED
File without changes
body CHANGED
@@ -37,4 +37,4 @@
37
37
  0. headerの位置をimagepngの直前にする。
38
38
  0. headerの位置をimagedestroyの直後にする。
39
39
  0. headerの位置をプログラムの先頭にする。
40
- 0. arial.ttfを絶対パス(C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttf)を指定する。
40
+ 0. $fontのパスを絶対パス(C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttf)を指定する。

1

情報の追加をしました。

2016/12/27 09:01

投稿

daisy
daisy

スコア30

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  ###前提・実現したいこと
2
- PHP7使っています。
2
+ windows7でxamppインストールしした。PHPのバージョンはPHP7です。
3
3
 
4
4
  ###発生している問題・エラーメッセージ
5
5
  imagettftextを使い画像をブラウザに出力しようと思ってマニュアルの例1にある下のプログラムを実行しましたが、**画像ファイルhttp://localhost/hoge.phpは壊れているため、表示できませんでした。**と表示されてマニュアルの出力例のようにならないです。arial.ttfはphpファイルと同じ階層におきました。いったい何が違うのでしょうか?
@@ -32,4 +32,9 @@
32
32
  imagepng($im);
33
33
  imagedestroy($im);
34
34
  ?>
35
- ```
35
+ ```
36
+ ###ためしたこと
37
+ 0. headerの位置をimagepngの直前にする。
38
+ 0. headerの位置をimagedestroyの直後にする。
39
+ 0. headerの位置をプログラムの先頭にする。
40
+ 0. arial.ttfを絶対パス(C:\Windows\Fonts\ARIALNB.TTFとC:\xampp\htdocs\arial.ttf)を指定する。