• 締切済み

image関数でMS Pゴシックを使いたい、太字を使いたい

TrueTypeフォントを利用しています。 出力する文字列をMS Pゴシック、太字として出力するにはどうすれば良いのでしょうか? $string1 = "あいうえお"; $string2 = "かきくけこ"; $font = 'msgothic.ttc'; ~~ 中略 ~~ mb_convert_variables('UTF-8', 'SJIS', $string1); mb_convert_variables('UTF-8', 'SJIS', $string2); imagettftext($id, 12, 0, 5, 20, $black, $font, $string1); imagettftext($id, 12, 0, 80, 40, $black, $font, $string2); imagettftext($id, 12, 0, 81, 40, $black, $font, $string2); 今は仕方なく$string2を出力する位置をズラして、 太字っぽくしています。 MS Pゴシックが使いたいのですが、別の指定方法などがあるのでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

マニュアルにdrawboldtext()が紹介されています。 試したわけではないので動作は保証しません。 フォントを埋め込む場合はライセンスに抵触して いないか自己責任でよく確認した上でなさった方が よろしいかとおもいます。

参考URL:
http://www.php.net/manual/ja/function.imagettftext.php

関連するQ&A

  • (フォントの)ゴシックを印刷すると太字になってしまう

    お世話になります。 現在wordで卒論を書いています。フォントは「MSゴシック」で書いているのですが、印刷をするとどうも太字のような感じになってしまいます。 明朝体などだと太字のようにはならないんですが、長いことこのフォントを見ているのでどうしても明朝体にはしたくないんです。 ゴシックでなくても、この教えてgooでも使われている文章の字体ようなフォント(うまく説明できませんが、筆記体のようなものではない、どちらかというと角ばって+丸文字というか・・・)で、印刷しても太字にならないものはないでしょうか? ※MSゴシックで書いている論文を印刷プレビューしても太字にはなりません。プリンターによって字が太字のような感じになってしまうということはありますか?プリンターはhpのPSC2355というオールインワンという機種です。 私は知識が乏しいので、どなたか知恵をお貸し下さい。

  • PHPのGD関数を用いた文字出力について

    以下の、PHPのGD関数を用いたスクリプトにおいて、「男女別表示」という 文字が出力されません。どこが間違っているのか教えていただきたいです。 ちなみに、MSゴシックのフォントは、自パソコンの中に存在しています。 <?php $im = imagecreatetruecolor(601, 801); // 1ピクセル多めなキャンバスを作る // タイトル $font = "c:\windows\fonts\msgothic.ttc"; $jstr="男女別表示"; $jstr=mb_convert_encoding($jstr, "utf-8", "auto"); $color = imagecolorallocate($im, 0, 0, 0); imagettftext($im,100,30,150,45,$color,$font,$jstr); // 出力し、メモリを開放します header('Content-type: image/png'); imagepng($im); imagedestroy($im); ?>

    • ベストアンサー
    • PHP
  • VistaのMSゴシックがおかしい

    VistaのMSゴシックがおかしい Firefoxを使用している時に、MSゴシックがぼやけて表示されます。 Firefoxの設定で「Webページが指定したのフォントを優先する」のチェックを外すと 正常にMSゴシックで表示されます(MSゴシックを指定した場合) しかし、すべての文字がMSゴシックになってしまうので、サイトによっては 見栄えが異なってきます。 レジストリエディタから、MSゴシックのところを 「msgothic.ttc」から「MSGOTHIC.TTC」と大文字に変更して再起動すると 正常に戻りますが、再度、再起動すると、また同じようになります。。。 Firefoxを再インストールするもダメ。。。 フォントキャッシュを削除しても変わりませんでした。 一旦、MSゴシックを削除して、再度入れましたが症状は変わりません。 IEの方でも、たまに同じような症状がでます。 Thunderbirdを最初に開けたときに出る、「Thunderbirdへようこそ」という ところも同じくぼやけてしまいます。 もし解決法をおしりの方がおられればよろしくお願いします。 PC: VAIO Type Z RAM: 4GB CPU: Core 2 Duo Firefox: version 3.6.2 IE: version 8 Thunderbird: 3.0.4

  • Windows7のMSゴシック変更方法

    Windows7になって、MSゴシック系列の半角文字字体が変わりました。 XPからVistaになったとき、9ポイント"2"の字体が見苦しくなりましたが、 今回は"2"だけでなくすべての半角文字が以前より見にくくなっていると 感じます。 Vistaの時はXPのmsgothic.ttcと差し替れば解消できましたが、Win7で はXPのmsgothic.ttcを流用することはできなくなりました。 Windows7のダイアログはなぜか未だにMSゴシック系列フォントを使った 物が多く、当方も文書でMSゴシック系列を多用しており、Windows7で開 くと大きくイメージが変わってしまいます。 Windows7のMSゴシックを従来(JIS2004対応以前)のフォントに入れ替 えることは可能でしょうか。

  • *******imagetext.php***************

    *******imagetext.php***************:: <?php //画像(JPEG)ヘッダを追加 header("Content-type: image/jpeg"); //作成する画像の設定 //幅 $width = 400; //高さ $height = 100; //画像を作成 $img = imagecreate($width, $height); //色の設定(背景/文字列) imagecolorallocate($img, 255, 255, 255); $textcol = imagecolorallocate($img, 255, 0, 0); //書き込む座標 $x = 50; $y = 50; //文字サイズ $size = 20; //角度 $r = 0; //フォントファイルへのパス $font = "C:/WINDOWS/Fonts/MSGOTHIC.TTC"; //画像に文字列を書き込む $string = "文字列を書き込む"; $string = mb_convert_encoding($string, "UTF-8", "SJIS"); imagettftext($img, $size, $r, $x, $y, $textcol, $font, $string); //画像を出力 imagejpeg($img); ?> ************************** MSゴシックのファイルパスはこのように設定しています。 C:/WINDOWS/Fonts/MSGOTHIC.TTC エラーっぽいような文字化け画面になってしまいます。 質問1>>上記のような症状を解決するには? 質問2>>上記のことを解決したうえで、      //画像を出力      imagejpeg($img);      の部分をなくして、      //画像をファイルへ保存      ??????      へ変更するにはどのようにすればいいですか?

    • ベストアンサー
    • PHP
  • Shift-JISからUTF-8への変換が出来ません

    初歩的な質問で申し訳ありませんが、大変困っております。ただいまimagettftext()を使って日本語主力したく悪戦苦闘しております。  ページ自体はShift-JISで制作していますのでimagettftext()で日本語を出力する場合はUTF-8へ変換して出力するところまでは知れべていて分かりました。しかしいざmb_convert_encoding()で変換しようとするとなぜかUTF-8へ変換されません。 $str = mb_convert_encoding($str,"UTF-8","SJIS"); print mb_detect_encoding($str);  結果→SJIS しかしこれがEUC-JPなら変換されます。 $str = mb_convert_encoding($str,"EUC-JP","SJIS"); print mb_detect_encoding($str);  結果→EUC-JP なぜなのか原因が分からなく困っております。 どなたかご教授願いませんでしょうか? よろしくお願い致します。

    • 締切済み
    • PHP
  • UTC-8→SJISで文字化け

    こんにちわ!宜しくお願い致します。 現在、オープンソースのアンケートシステム「limesurvey」におきまして、文字化けが起きており困っております。 LimeSurveyバージョン 1.90+ Build 9046 ほとんどのところは、きちんと日本語表示されるのですが、グラフ内(pchart)の文字が文字化けします。 いろいろネットで調べて、imagettftextが原因と分かりました。 「JIS-mapped Japanese Font Support」の設定値がTRUEの場合、GDライブラリは渡された文字列をUTF-8ではなく、Shift_JISとして解釈するということが分かり、mb_convert_encoding関数であらかじめShift_JISに文字コード変換してから、imagettftext関数に渡したところ基本的には、文字化けが解消しました。 以下が、そのコードです。 $Value2 = mb_convert_encoding($Value2,"SJIS ","UTF-8"); しかしながら、「(1)(2)(3)」(←まる1、まる2、まる3)などの機種依存文字がどうしても「?」に変換されてしまいます。 Shift_JISには、「(1)(2)(3)」などの機種依存文字が無いので仕方がないのですが、何とか良い方法が無いでしょうか? ちなみにネットで調べたところ、「SJIS」ではなくて、「SJIS-win」で変換すれば文字化けが起こらないと分かりましたが、今度は、imagettftextでエラーが出てしまいます。 下記のコードはエラーになります。 $Value2 = mb_convert_encoding($Value2,"SJIS-win ","UTF-8"); 「JIS-mapped Japanese Font Support」の設定値がTRUEの場合でも、GDライブラリは渡された文字列をUTF-8として強制的に解釈させる方法など無いのでしょうか?その他何か良い方法があればお教え下さい。 以上、宜しくお願い致します。

    • 締切済み
    • PHP
  • 文字列のエンコードについて

    例えば以下のコードで日本人がターゲットのサイトを作ったときにエンコードがutf8以外ってありますか?idなどもutf8でなんとかなるのになぜ他の文字コードは必要なのですか? //SJISに変換 $str = "私のidはrxxdtggb63332224667です。"; $result = mb_convert_encoding($str, "SJIS"); echo $result . "\n"; //UTF-8に変換 echo mb_convert_encoding($str, "UTF-8"); //SJISに変換 $str = "gcdddyyghgcc.jpg"; $result = mb_convert_encoding($str, "SJIS"); echo $result . "\n"; //UTF-8に変換 echo mb_convert_encoding($str, "UTF-8");

    • ベストアンサー
    • PHP
  • PHP+Postgres 「髙」が文字化け

    DB上に格納した文字列を取得し、PHPで出力すると、 「髙」(はしごだか)等、一部の文字が「□・」のような見た目に化けてしまいます。 環境は以下です。 Linux(CentOS 5) PHP 5.1.6 Apache 2.2.3 PostgreSQL 8.4.3 文字コードは以下です。 Postgres:EUC-JP PHPソース:EUC php.ini の[mbstring]はコメントのまま変更していません。 文字コードの変換を試してみたのですが、「髙」としては出力できませんでした。 Windows上では「CP51932」に変換すると正常に出力できましたが、Linux上ではやはり駄目でした。 mb_language("uni"); mb_internal_encoding("euc-jp"); mb_http_input("auto"); mb_http_output("euc-jp"); $str = "髙橋"; print(mb_convert_encoding($str, "EUCJP-win")); print(mb_convert_encoding($str, "EUCJP-win","EUC-JP")); print(mb_convert_encoding($str, "SJIS")); print(mb_convert_encoding($str, "SJIS","EUC-JP")); print(mb_convert_encoding($str, "SJIS-win")); print(mb_convert_encoding($str, "SJIS-win","EUC-JP")); print(mb_convert_encoding($str, "UTF-8")); print(mb_convert_encoding($str, "UTF-8","EUC-JP")); print(mb_convert_encoding($str, "EUC","SJIS")); print(mb_convert_encoding($str, "Unicode")); print(mb_convert_encoding($str, "Unicode","EUC-JP")); print(mb_convert_encoding($str, "UTF-8", "sjis-win")); print(mb_convert_encoding($str, "CP51932")); print(mb_convert_encoding($str, "MS932")); print(mb_convert_encoding($str, "MS932","EUC-JP")); print(mb_convert_encoding($str, "UTF-8","EUCJP-win")); print(mb_convert_encoding(mb_convert_encoding($str, "EUCJP-win" ), "UTF-8","EUCJP-win")); print(mb_convert_encoding(mb_convert_encoding($str, "EUCJP-win","EUC-JP"), "UTF-8","EUCJP-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win" ), "UTF-8","SJIS-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win","EUC-JP"), "UTF-8","SJIS-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win" ), "EUCJP-win","SJIS-win")); print(mb_convert_encoding(mb_convert_encoding($str, "SJIS-win","EUC-JP"), "EUCJP-win","SJIS-win")); http://blog.livedoor.jp/loopus/archives/50160285.html 上記サイトによると、解決法は「EUC-JPで出力しないこと」という事でしたが、 文字コードを変換して出力できるような事を書いているサイトもあり、結論が出せずにいます。 ソースを書き換えるのは避けたいのですが、いい方法がありましたらご教示ください。

    • ベストアンサー
    • PHP
  • 文字エンコードについて

    Blogの更新をPHPで挑戦してみたのですが、文字化けしちゃって訳がわかりません… PHPのバージョンは5.1.6.6でバッチファイルを使用してます。 色々調べてみた結果Blogの方の文字コードがShift_JISみたいなので (PHPは基本UTF-8ですよね?) mb_convert_encodingかmb_convert_variablesの関数かなと思って使用してみたのですが結果はエラーがおきてしまい↓↓どうしていいのか分かりません、、 mb_convert_encoding(変換したい文字列, "SJIS", "auto"); mb_convert_variables("JIS", "UTF-8", 変換したい文字列); autoのところをUTF-8にしてもおなじでした… もちろん一つずつ試しました。 どなたかいい解決方法を教えて頂けませんか?

    • 締切済み
    • PHP

専門家に質問してみよう