スレッド表示 | フラット表示〕 全トピック 920 件中 713 番目 次≫ ≪前

FreeType について

created: 2003-12-11 18:52 | modified: 2003-12-15 01:34 | reply: 14

[1143] FreeType について

user: mido | created: 2003-12-11 18:52
こんにちは。
いま、GDライブラリを使用してレーダーチャートを作成しています。
グラフの方はとりあえず旨くいったのですがグラフの頂点あたりに文字を表示しようとするにはFreeTypeをインストールしなければならないとお聞きしました。

OSはWINDOWS XPなのですが旨く導入する方法を教えていただけますでしょうか?
LINAXの環境は以前POSTGRESQLを導入する時に挫折してMYSQLにしたと言う苦い思い出があるためあまり触りたく無いのですが・・・・・

よろしくお願いいたします。
reply: 1144 返信 編集 削除

[1144] Windowsで必要?

user: ゆうじ | created: 2003-12-12 10:10
FreeTypeについてまったく
知りませんでしたのでチと調べました。

FreeTypeは、Windowsで使用されるTrueTypeFontを扱う為のライブラリのようですね。
もとからTrueTypeFontが扱えるWindowsで、
このライブラリが必要なのか疑問です。


試しに、GDとFreeType、mbstringが
有効なPHP4.3.4+Win2000にて、
PHPマニュアルにhttp://jp2.php.net/manual/ja/function.imagettftext.php
載ってるサンプルコードを
コピーしてフォントのパスを書き換えたら、

指定したフォントで表示されましたけど。
ただしマルチバイト文字はいけませんでした。


# ところでマルチポストって知ってます?
Parent: 1143  reply: 1145 返信 編集 削除

[1145] Re.Windowsで必要?

user: ゆうじ | created: 2003-12-12 16:16
GD+マルチバイト文字についての追加情報です。
さらに調べてみたところ。
マルチバイト文字を描写するには、
UTF-8 にエンコードしておくことが必要なようです。

フォントによっては、まったく違う文字が表示されてるので、
FreeTypeを使ってもマルチバイト文字が
使えないフォントが存在するってことでしょう。


さらに追加情報:
4.3.x に付属の php_gd2.dll だと
マルチバイト文字が表示されないフォントも、
4.2.x まで付属していた、php_gd.dllだと表示できたりするようです。

フォントが使えないのではなく、
GDライブラリの仕様が変わったもようです。
Parent: 1144  reply: 1148 返信 編集 削除

[1148] 遅くなりすみません

user: mido | created: 2003-12-13 00:17
色々と調べていただきありがとうございました。WINDOWSの場合FreeTypeが導入されているようなので私のプログラムか設定の方に異常があるようです。
私も参考アドレスと同じようにコピーして実行してみたのですが旨くいきませんでした。下記のようなソースですが何処がまずいのでしょうか?スミマセンが教えていただけますでしょうか?

<?php
header("Content-type: image/jpeg");
$im = imagecreate(400,30);
$white = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);

$str=mb_convert_encoding("ああ","UTF-8","EUC-JP");

imagettftext($im, 20, 0, 10, 20, $black, "C:\WINDOWS\Fonts\msgothic.ttc",$str);
imagejpeg($im);
imagedestroy($im);
?>


実行結果は"・・・・"となってしまします。
Parent: 1145  reply: 1149 返信 編集 削除

[1149] \ → /

user: ゆうじ | created: 2003-12-13 00:31
"C:\WINDOWS\Fonts\msgothic.ttc"

これは、

"C:/WINDOWS/Fonts/msgothic.ttc"

または、

"C:\\WINDOWS\\Fonts\\msgothic.ttc"

ではないかと思います。
\という文字はエスケープしとかないとということで。
Parent: 1148  reply: 1150 返信 編集 削除

[1150] 残念ながら・・・

user: mido | created: 2003-12-13 01:50
ありがとうございます。
実行値は"????"に変わりました。

PHPのバージョンにも問題があるのでしょうか?現在4.3.1で設定しているので最新版に変えて実行しようと思っています・・・・・。
Parent: 1149  reply: 1151 返信 編集 削除

[1151] 4.2.x の php_gd.dll

user: ゆうじ | created: 2003-12-13 10:37
[1145]でもgdライブラリーに問題(?)があることは書きましたが、
msgothic.ttc はマルチバイトが表示できないフォントでした。
現在、マルチバイト文字がだめでも、
半角英数字にはフォントが反映されてるんですよね。

現在お使いの php_gd2.dll を、
4.2.x の php_gd.dll に差し替えれば
マルチバイト文字も表示されると思います。
このファイルを php/extensions にコピーして、
php.ini GDモジュール部分を以下のように書き換え、再起動。
;extension=php_gd2.dll  #コメントアウト
extension=php_gd.dll #追記


私のところはこれで表示できました。
Parent: 1150  reply: 1157 返信 編集 削除

[1157] 初歩的な事で申し訳ありません

user: mido | created: 2003-12-14 10:10
いつも早々に回答いただいているのに対応が遅く本当に申し訳ありません。
おっしゃるとおり、

$str=mb_convert_encoding("Q1","UTF-8");

imagettftext($im, 20, 0, 10, 20, $black, "C:/WINDOWS/Fonts/msgothic.ttc",$str);

としたところ半角英数字のフォントは反映され
"Q1"という実行値がえられました。

後はphp_gd2.dll を、4.2.x のphp_gd.dll に差し替えればと思い調べていたのですが・・・

初心者とはいえあまりにも初歩的な質問で申し訳ありませんが、
4.2.x のPHPをダウウンロードしてそれをLHAユーティリティーで解凍しphp_gd.dllの部分だけを差し替えて・・・
と考えたのですが、その方法でよろしいのでしょうか?
また4.2.x は何処で入手すれば良いでしょうか?インストールした時はWINDOWSのバイナリを使用していた為そのバージョンがみつから無いのですが・・・・
本当にお世話をおかけしますが、
よろしくお願い致します。
Parent: 1151  reply: 1158 返信 編集 削除

[1158] GDを使ってマルチバイト文字を表示する

user: ゆうじ | created: 2003-12-14 15:33
> 4.2.x のPHPをダウウンロードしてそれをLHAユーティリティーで解凍しphp_gd.dllの部分だけを差し替えて・・・
> と考えたのですが、その方法でよろしいのでしょうか?

その通りです。説明不足ですみません。

PHPの古いバージョンは、
バイナリーでもソースでも、こちらから入手できます。
●PHP Museum
http://museum.php.net/


私は以下のような手順で行なったところ、
マルチバイト文字も表示されるようになりました。

●php_gd.dll の差し替え手順
1.4.2.3のWindowsバイナリーをダウンロードする。
  http://museum.php.net/win32/php-4.2.3-Win32.zip

2.php-4.2.3-Win32.zip を解凍し、
  extensions フォルダーにあるphp_gd.dll を、
  現在運用中の extensions フォルダーにコピーする。

3.php.ini で、現在の有効になっている php_gd2.dll をコメントアウト。
  代わりに、extensions=php_gd.dll を書き加える。
;extension=php_gd2.dll
extension=php_gd.dll

4.ウェブサーバを再起動。
Parent: 1157  reply: 1161 返信 編集 削除

[1161] 同じようにやったつもりなのですが

user: mido | created: 2003-12-14 21:01
詳しい説明ありがとうございます。
同様に試みたつもりなのですがやはり
”ああ”の結果は

"????"

となってしまいます。
他のフォントで試してみましたが同じ結果でした。
php_mbstring.dllも同様に書き換えてみましたが同じ結果でした。

Apache,PHP,MySQL,,,と
自分で見よう見まねで環境を設定してきたのですが
何処かでおかしな事をしているのかもしれません・・・・
もう少し調べてみます。
Parent: 1158  reply: 1162 返信 編集 削除

[1162] お聞きします。

user: mido | created: 2003-12-14 21:44
度々すみません。
ひとつ質問なのですが
ゆうじさんのphpinfo()のGDの
FreeType Linkageの値は
何になっているのでしょうか?

私の場合は
FreeType Linkage with TTF library
となってしまっています。

正常に作動させる為には
FreeType Linkage with Freetype
とならなければならないと
何処かで見た覚えがあるのですが・・・・・

よろしくお願いいたします。
Parent: 1161  reply: 1164 返信 編集 削除

[1164] 文字コード確認

user: ゆうじ | created: 2003-12-14 22:34
こちらの環境は、
Apache1.3.28+PHP4.3.3
GDは以下のとおりです。
GD Support  enabled  
GD Version 1.6.2 or higher
FreeType Support enabled
FreeType Linkage with TTF library
JPG Support enabled
PNG Support enabled
WBMP Support enabled

単に、ソースの文字コードがEUCではなくSJISなのでは。
私はソースをSJISで書いてるので、
UTF-8へのエンコード部分は以下のようにしてます。
$str=mb_convert_encoding("ああ","UTF-8","SJIS");
Parent: 1162  reply: 1165 返信 編集 削除

[1165] ありがとうございます!

user: mido | created: 2003-12-15 00:01
4日間にわたるご指導本当にありがとうございました。

ゆうじさんのおっしゃるとおり文字コードを$jisとしたところ
"ああ"
という文字が出力されました。

正直途中であきらめの境地に入っていた時もありましたが
初心者である私にもとてもよく解るように丁寧にご指導頂き本当に感謝しております。

また、壁にぶつかった時はお聞きしに来る場合も多々あると思いますがこれに懲りずに・・・・・
 
よろしくお願い致します。

ありがとうございました!!
Parent: 1164  reply: 1166 返信 編集 削除

[1166] ご丁寧にどうも

user: ゆうじ | created: 2003-12-15 01:01
ご丁寧にどうも。
私も素人ですので解決できないこともありますが、
勉強になるのでご質問を投げていただくのは歓迎です。
今後とも宜しくお願いいたします。


あと、マルチポストされてた Do You PHP? さんところにも、
結果報告しておくのが礼儀かとおもいます。

マルチポストについてはこちらを読むと良くわかります。
http://www.ippo.ne.jp/netiquette/common/04question/multipost.htm

今後はご注意ください。
Parent: 1165  reply: 1167 返信 編集 削除

[1167] 知らないとはいえ・・・・

user: mido | created: 2003-12-15 01:34
なんとお礼を言って良いのやら・・・・

[1144] でマルチポストと書かれていたのはきずいていましたが
てっきりエラー関係の言葉だとばかり思ってしまいました。
今まで知らないとはいえ礼儀知らずの事を何度もしてしまっていたようです。

私が知らないネット上での常識というものがまだまだ沢山あるのでしょう。
教えて頂いたサイト等を見て勉強したいと思います。

指摘して頂いて感謝いたします。

どうもありがとうございました。
Parent: 1166  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 713 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑