質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

GD(Graphics Library)

GD(Graphics Library)は、線や多角形、円、テキストなどを書くことができるライブラリです。グラフなどを作成する際に利用されます。

Q&A

3回答

3921閲覧

PHPのGDを使って画像に文字を入れたい

0421yumin

総合スコア8

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

GD(Graphics Library)

GD(Graphics Library)は、線や多角形、円、テキストなどを書くことができるライブラリです。グラフなどを作成する際に利用されます。

0グッド

0クリップ

投稿2016/12/27 06:00

PHP初心者です

GDを使って画像に文字を入れたいと思っているのですがうまく行きません
個人的にあってるか心配なのがフォントの指定です絶対パスでいいのかダメなのか

コードはこのように書いたのですが

lang

1$sFilePath = "http://●×△.com/images/saba.jpeg"; 2 3// 画像の読込 4$AddImage = imagecreatefromjpeg($sFilePath); 5 6// 色の指定 7// RGB形式で色の指定を行います 8$TextColor = ImageColorAllocate($AddImage, 0, 0, 0); 9 10// テキストの埋め込み 11ImageString($AddImage, "saba.ttf", 1, 1, $_POST["player"], $TextColor); //プレイヤー 12ImageString($AddImage, "saba.ttf", 1, 1, $_POST["birthday"], $TextColor); //生誕日 13ImageString($AddImage, "saba.ttf", 1, 1, $_POST["sex"], $TextColor); //性別 14ImageString($AddImage, "saba.ttf", 1, 1, $_POST["rank"], $TextColor); //称号 15ImageString($AddImage, "saba.ttf", 1, 1, $_POST["nickname"], $TextColor); 16ImageString($AddImage, "saba.ttf", 1, 1, $_POST["firstjoin"], $TextColor); 17ImageString($AddImage, "saba.ttf", 1, 1, $_POST["number"], $TextColor); 18ImageString($AddImage, "saba.ttf", 1, 1, $_POST["from"], $TextColor); 19ImageString($AddImage, "saba.ttf", 1, 1, $_POST["comment"], $TextColor); 20ImageString($AddImage, "saba.ttf", 1, 1, $_POST["player"], $TextColor); 21ImageString($AddImage, "saba.ttf", 1, 1, $_POST["shop"], $Tex 22ImageString($AddImage, "saba.ttf", 1, 1, $_SERVER["REMOTE_ADDR"], $TextColor); 23ImageString($AddImage, "saba.ttf", 1, 1, gethostbyaddr($_SERVER["REMOTE_ADDR"]), $TextColor); //host 24ImageString($AddImage, "saba.ttf", 1, 1, $toda1, $TextColor); 25 26imagejpeg($AddImage); 27 28imagedestroy($AddImage);

このように書いたのですがこのようなエラーがでます

lang

1<br /> 2<b>Warning</b>: imagestring() expects parameter 2 to be long, string given in <b>/home/省略/省略/public_html/Other/post/sabamin.php</b> on line <b>12</b><br /> 3 4|||省略|| 5 6<b>Warning</b>: imagestring() expects parameter 2 to be long, string given in <b>/home/省略/省略/public_html/Other/post/sabamin.php</b> on line <b>25</b><br /> 7����JFIF��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality 8��C  9  10  $.' ",#(7),01444'9=82<.342��C  11 122!!22222222222222222222222222222222222222222222222222����"�� 13 ���}!1AQa"q2���#B��R��$3br� 14%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� 15 ���w!1AQaq"2�B���� #3R�br� 16$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������������������������������������������������������������������� ?��(�� 17(�� 18(�� 19�]N ��m&��Dqά�x5dAXԨo,aK��~&���Ҁ��G�W�\�$w����Lɵ���3nr��`N=N;s�W;� 20*������B-��J#�C�� �=��-iZ��Ε,�K�C�����AʾX2�~a��W;'��DvN"��n��a���$g��7cgQ��n3�G�i1C-��y�*�4(0qUl�g85�y�뙭�,��e��C�w(w 21:M����(WD��PЬ/nQRk�t��F,����_SI��ɩEqpQ���l�y�5��~��OzW������Y�e�ٞۊ�)' ��$�q�"��m�w�/ٖ��'���@���*��\`�H�sV:��[����8��‚<�s�*8�[�㥮z? 22�>1����}����B# ����Gz��x��N���XfgO�d�1��9�{�a��Sj��ҥ���\�}pm�H��0��$� ��e��Ե�����"�����ms獸��#���j�Zk�j:=�Ȫ�M;)x%��€�ߦ��_��e on�R�O˻��x�<C�E����̔D���s�SRx�M}gú����[�*�2�#&���D�]���)�#�a, ��ˏ�z�$�<Am�i��G�G�u�G�'� Rh����H�g��Юc���e ���7�A����<�F�ucq*̷n%yh���:�q��)��I�b�D*6�d�pI�{����{�OS׭���1Y^�>�;��F���������̚x�E �VrF�u 23YG9�8��ӕ������i�Eq{y��}��F�?����4��xӡ� 24$�D��Cd�������Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@�QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE��

こんな感じのエラーが発生します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

imagestring() expects parameter 2 to be long, string given

これは「imagestringの第二引数はLong型(integer型)でないといけないのにString型が渡されている」というエラーです。
imagestringでフォントを指定する場合には事前にimageloadfontを使用する必要があります。

下記は公式サイトに載っていた例です。

php

1$font = imageloadfont('./04b.gdf'); 2imagestring($im, $font, 0, 0, 'Hello', $black);

http://php.net/manual/ja/function.imagestring.php
http://php.net/manual/ja/function.imageloadfont.php

投稿2016/12/27 06:25

toaruhetare

総合スコア141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ttf なフォントを使用したい場合、ImageTTFTextを使用してください。
相対パス指定でTTFフォントを指定できるようです。
http://php.net/manual/ja/function.imagettftext.php

投稿2016/12/27 06:21

raa0121

総合スコア190

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

php

1$font = imageloadfont("saba.ttf");

を追加して、

php

1ImageString($AddImage, $font, 1, 1, $_POST["player"], $TextColor); //プレイヤー

という感じにしてください。
ImageStringの第2引数にはフォントのID(数字)を指定します.
imageloadfont()はPHPにフォントを登録して、IDを取得する関数です。

投稿2016/12/27 06:16

stmkza

総合スコア478

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0421yumin

2016/12/27 07:21

回答ありがとうございます 回答のようにやったら新たなエラーがでてきてしまいました.. <b>Warning</b>: imageloadfont(): gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully in <b>/home/public_html/Other/post/sabamin.php</b> on line <b>4</b><br /> <br /> <b>Warning</b>: imageloadfont(): Error reading font, invalid font header in <b>/homepublic_html/Other/post/sabamin.php</b> on line <b>4</b><br />
stmkza

2016/12/27 07:28

すみません。ttfファイルを指定したいのですね。勘違いしていました。 それなら、imageloadfontを消して、 imagettftext($AddImage, [文字サイズ], 0, 1(X座標), 1(Y座標), $TextColor, "saba.ttf", $_POST["player"]); という感じにしてみてください。すみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問