スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PHPで画像を動的に作成

PHPで画像を動的に作成したいことがある。
いろいろ調べてみたけどほしい情報がなかなか集まらなかったのでここにメモ。

■目的
・PHPで画像を動的に作成する
・画像には日本語の文字列を挿入する

■方針
・なるべくシンプルな方法を選ぶ

■用意するもの
日本語対応したフォントファイル

■方法
下記の通り

header ("Content-type: image/jpeg");//おまじない
$im = imagecreate (640, 360);//画像のサイズ
$bg = ImageColorAllocate ($im, 240, 240, 240);//背景色
$font_color = ImageColorAllocate ($im, 100, 100, 100);//フォントカラー
$font1 = "MEIRYO.TTC"; //日本語対応したフォントファイルを適当な所にアップして参照
$str = "日本語も表示可能";//出力文字列
ImageTTFText ($im, 50, 0, 200, 200, $font_color, $font1, $str);
//size, angle, x, y, color, font, string
ImageJpeg ($im);//jpgで出力①
ImageDestroy ($im);//開放


上記を例えばimage.phpと名づけて保存、これにアクセスすると、画像が表示される。
作成した画像をファイルとして保存したい場合は①を下記のようにする。

ImageJpeg ($im, './image.jpg');//jpgでファイルに保存

ちなみにPNGが良ければ、

Imagepng ($im, './image.png');//pngでファイルに保存

■追記
ちなみに文字を中央揃えにしたい場合は


header ("Content-type: image/jpeg");
$im = imagecreate (640, 360);
$bg = ImageColorAllocate ($im, 240, 240, 240);

//ThankU!
$font1 = "MEIRYO.TTC";
$str = "中央揃えにしたい";
$tb = imagettfbbox(50, 0, $font1, $str);
$x = ceil((640 - $tb[2]) / 2); //640は画像の幅
$font_color = ImageColorAllocate ($im, 100, 100, 100);
ImageTTFText ($im, 50, 0, $x, 150, $font_color, $font1, $str);//size, angle,x,y,color,font,string

Imagepng ($im);
ImageDestroy ($im);


のようにする。
詳しくは
http://php.net/manual/en/function.imagettftext.php

コメント

コメントの投稿

非公開コメント

PR

PR

プロフィール

何でも書くman

Author:何でも書くman
思ったことや備忘録など、とりあえずなんでも書きます。IT系のことや趣味、生活に関わることなども。

ページの先頭へ戻る
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。