Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • 締切済み

画像ファイルに文字列を合成

こんばんは。お世話になっております。 ブラウザからアップされた画像ファイルに、文字列を付け加えて保存したいと考えているのですが、GD利用ということで手元にある本やネットで色々調べてはいるものの、黒い画面(画像)が出てくるのみで、「やりたいことに副ってない?」と半信半疑な心境に駆られている状態です。 イメージ的にはよく「SAMPLE」と記載された画像があると思うのですが、この「SAMPLE」自体を透過加工したGIFを事前に揃えておくのか?それとも単なる文字列を画像ファイルに合成?させることで叶うものなのか?さえも手探り状態が続いています。 例えば以下のページにある画像のようなものを描いています。 http://www.photolibrary.jp/img48/7058_149125.html imagemagickを導入すれば・・とまでは、本サイトの同じカテゴリにも紹介がありますが、まず、GDにて文字列を画像ファイルに合成させる場合の簡単なサンプルでもお教えいただければ幸いに思っております。 ※教えて君のような恐縮なのですが・・・手探り状態から抜け出せずにおりまして・・・ご理解願えれば幸いです。

みんなの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

参考サイト:PHPでGDを使おう http://tsuttayo.sytes.net/php/gd/index.html GDのdefault fontでは、文字列はascii文字(半角英数字、半角記号)しか使えませんが、 font番号0から5 の6段階のサイズで文字列を書き込むことが出来ます。 「GD による画像編集 ネームプレート作成」を自分のサイトでも紹介してるけど、urlは書けないので以下に抜粋。 // ex. $width=200; $height=30; $r=0;$g=0;$b=0; // 画像サイズ、背景色 $canvas = imagecreatetruecolor ($width, $height); $bgc = imagecolorallocate ($canvas, $r,$g,$b ); imagefilledrectangle ($canvas, 0, 0, $width, $height, $bgc); imagecolortransparent($canvas,$bgc); // 透過設定 $red=255; $green=225; $blue=200; // 文字色 $tc = imagecolorallocate ($canvas, $red, $green, $blue); $str='abc_0123456789-xyz'; $fontid=0; $fw = imagefontwidth ( $fontid ); $fh = imagefontheight ( $fontid ); $len = strlen($str); $left= floor( ($width - $len * $fw)/2 ); $top = floor( ($height- $fh )/2 ); imagestring ($canvas, $fontid, $left,$top, $str, $tc); $type = IMAGETYPE_GIF; // ie はgifしか透過表示出来ないらしい header("Content-type: " . image_type_to_mime_type($type) ); imagegif($canvas); // // end; // 他には何も出力しないこと、よけいな出力があると画像ファイルが壊れます。

参考URL:
http://tsuttayo.sytes.net/php/gd/index.html
chap2
質問者

お礼

hrm_mmmさんへ はじめまして、こんばんは。 ご親切な対応をありがとう御座います! 今からお教えいただいたサイトを含め、色々と試させていただきます! 取り急ぎご挨拶までに・・。改めてご報告いたします。 ありがとう御座いました!

chap2
質問者

補足

こんばんは。お世話になっております。 昨日から、開示していただいたソースを含め、お教え頂いたサイトのサンプルなどを色々と試しておりますが、質問に書いたような、既に保存されている風景や人物などの画像の上に、任意の文字列を合成させる・・というものが出来ません。汗 ヒントが隠されているだろうと、色々と試しているのですが、そのヒントさえ見出せずに居る状態です。 ソースまで開示して下さっているのにお恥ずかしいところかと思いますが、今一度アドバイスいただければ幸いです。 宜しくお願い致します。

すると、全ての回答が全文表示されます。

関連するQ&A