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

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

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

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

Q&A

解決済

1回答

2735閲覧

xとyの座標設定の進め方(PHP)

tabe6

総合スコア19

PHP

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

0グッド

0クリップ

投稿2014/12/21 08:42

PHPで、動的なフォーラムの署名画像を設定していて、ユーザ名をこのイメージに乗せていきたいと思っています。

ユーザ名がそれぞれ違う長さであることやユーザ名を右揃えしたいことを踏まえると、xとyの座標を設定するにはどのように進めればいいのでしょうか?

lang

1$new_image = imagecreatefromjpeg("/path/hoge/base_image.jpg"); 2$write_text = "Username"; 3$write_font = "Font.ttf"; 4$set_color = imagecolorallocate($new_image, 0, 0, 0); 5 6imagettftext($new_image, 10, 0, 217, 15, $set_color, $write_font, $write_text); 7imagejpeg($new_image, null, 90);

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

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

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

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

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

guest

回答1

0

ベストアンサー

imagettfbbox()関数を使って文字列の幅を取得し、それを画像の幅から引いて、始まる
x座標を取得してください。

下記のコードを試してみて下さい。

lang

1$font_size = '10'; 2$angle = '45'; 3$write_font = "Font.ttf"; 4$write_text = "Username"; 5$new_image = imagecreatefromjpeg("/path/hoge/base_image.jpg"); 6 7$dimensions = imagettfbbox($font_size, $angle, $write_font, $write_text); 8$text_width = abs($dimensions[4] - $dimensions[0]); 9$x = imagesx($new_image) - $text_width;

先ほどのコード内で使用した関数の詳しい説明は、PHPマニュアルを参照して下さい。

imagecreatefromjpeg()関数
http://www.php.net/manual/ja/function.imagecreatefromjpeg.php

imagettfbbox()関数
http://www.php.net/manual/ja/function.imagettfbbox.php

abs()関数
http://www.php.net/manual/ja/function.abs.php

imagesx()関数
http://www.php.net/manual/ja/function.imagesx.php

投稿2014/12/21 09:34

beans22

総合スコア73

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問