Linuxとかプログラミングとか。

プログラミングとか趣味とかいろいろ発信していく大学生のホームページ。

PHPでGDライブラリを利用して画像を生成する

calendar

前回、PHPでTwitterの天気予報botを作りました。

PHPでTwitterの天気予報botを作る

Xperiaの天気ウィジェット、あれいいですよね。

設定した地域の天気情報を洗練されたデザインのアニメーションでリアルタイムで表示してくれるものです。

アニメーションではありませんが、今回は天気予報botが取得する天気情報を利用して、Twitterで呟く際一緒にアップロードする天気情報画像(地域と天気と気温を伝える)を生成するプログラムを作ろうと思います。

1.環境

1.1.作業の前提となる環境

  1. PHP5.6がcronで動作するレンタルサーバーを所有していること(自分はさくらレンタルサーバースタンダードプランを契約しています)
  2. twitteroauthライブラリが入手済みであること
  3. TwitterAPIキーを取得しており、twitteroauthライブラリに入力済みであること

1.2.GDライブラリ環境の構築

大体PHP対応のレンタルサーバーだと最初からGD環境の利用は可能なようです。(実際さくらサーバーも対応していました)

しかし、ローカルでの実行環境も備えておくとデバッグ時などに便利ですのでここで導入しておきます。

1.3.フォントファイルの準備

後に使いますので、日本語フォントファイルをダウンロードし、ipaexg.ttfを任意のディレクトリに移動させます。

IPAゴシックフォント

2.処理の定義

2.1.フォルダ構成

フォルダ構成は

www/bot/twitter/twitteroauth/
www/bot/twitter/account/(id名)/config.php
www/bot/twitter/account/(id名)/weather/WeatherTodayBot.php
www/bot/twitter/account/(id名)/weather/WeatherTomorrowBot.php
www/bot/twitter/account/(id名)/weather/weather.php
www/bot/twitter/account/(id名)/weather/cloudy.jpg(「くもり」のイメージ画像)
www/bot/twitter/account/(id名)/weather/rainy.jpg(「雨」のイメージ画像)
www/bot/twitter/account/(id名)/weather/sunny.jpg(「はれ」のイメージ画像)
www/bot/twitter/account/(id名)/weather/weather.jpg(「生成される画像」)
www/bot/twitter/account/(id名)/weather/ipaexg.ttf(フォントファイル)

とします。

2.2.背景画像の準備

2.1で用意する、各天気に合わせたイメージ画像を用意します。

僕はXperiaで撮影した画像を、GIMPエディタで加工し用意しました。

cloudy1

2.3.WeatherTodayBot.php

2.3.1.天気による条件分岐

前回のphpファイルをベースに手を加えていきます。まずは、取得した天気情報から得た現在の天気によって、どのイメージ画像を使うかを決めます。

2.3.2.色設定

テキスト色は白に設定します。

2.3.3.テキストの位置決めと出力

取得した気温の桁によってテキストを出力する位置を決めます。(というのも、テキスト座標が左上を基準に決められてしまうからです)

2.3.4.画像ファイルの出力とメモリ解放

2.3.5.画像のアップロードとツイート

2.3.6.ソースコード

いかがでしょうか。このようにして、取得する情報に応じて動的に画像を生成、ツイートすることができるようになりました。

まだメソッド分けをしていないので分かりにくいのですが、是非参考にしてみてくださいね。

この記事をシェアする

コメント

コメントはありません。

down コメントを残す




folder Android

SO-03C Xperia ray をICS化する
more...