AAアニメジェネレーター 書きかけのもの
AAアニメジェネレーターという、AAのgifアニメが簡単に作れるコンテンツを作ろうと思ってたのですが、
まあそりゃ誰か、もう作ってるよね・・・。
AA作ったことないし、かゆいところに手が届く素敵サイトは作れないので、作り途中ですが、作らないことにします。
でもせっかく途中まで書いたので、らくがき として、残しておきます。
--form---------------------- <html> <form method="POST" action="testphp.php"> <textarea cols="100" rows="10" name="text[]"> </textarea> <input type="submit"> </form> </body> </html>
<?php //--testphp.php--------------- class TEXT_UTIL{ public function separateLine($string){ $array = split("\n", $string); var_dump($array); } public function Width($array){ $max = 0; foreach($array as $line){ $length = strlen($line); if($max < $length){ $max = $length; } } return $max; } public function Height($array){ return count($array); } } class AAAnime{ const FONTSIZE = 20; const PADDING = 20; private $bg_array = array(); private $font_array = array(); private $aa_array = array(); private $out_filename; private $width; private $height; public function __construct(){ $out_filename = date("Ymd-his").".gif"; $this->setBGArray(); $this->setFontArray(); $this->setAAArray(); $this->measure(); } public function makeOneImage(&$img,$oneaa_array,$fontcolor,$filename){ // 一行ずつ画像に書き込み for($i=0; $i<count($oneaa_array); $i++){ $x = PADDING; $y = PADDING + FONTSIZE * $i; // 書き込み関数ここに入る imagegif($img,$filename); // ? } } public function makeAnime(){ $name_pre = date("Ymd-his"); $name_ext = ".gif"; $namearray = array(); // imagecreateてきなもの for($i=0; $i<count($aa_array);$i++){ // 画像を作成 $bgcolor = $bgcolor[$i]; // bgcolor変えるてきなものここに入る $name = $name_pre."-".$i.$name_ext; $namearray[] = $name; $fontcolor = $fontcolor[$i]; $this->makeOneImage($img,$aa_array[$i],$fontcolor,$namearray[$i]); } // アニgif書き出し関数ここに入る } public function getOutFilename(){ return $this->out_filename; } public function setBGArray(){ // 背景色の配列を受け取る $bg_array_tmp = $_POST["bg"]; foreach($bg_array_tmp as $bgcolor){ $this->bg_array[] = intval($bgcolor); } } public function setFontArray(){ // フォント色の配列を受け取る $font_array_tmp = $_POST["font"]; foreach($font_array_tmp as $fontcolor){ $this->font_array[] = intval($fontcolor); } } public function setAAArray(){ // リクエストを受け取る $aa_array_tmp = $_POST["text"]; // 一AA一要素・一行一要素の二次元配列 foreach($aa_array_tmp as $aa){ $this->aa_array[] = TEXT_UTIL::separateLine($aa); } } public function measure(){ // 画像サイズを測る $w_len = 0; $h_len = 0; foreach($this->aa_array as $oneaa){ $w_len_tmp = TEXT_UTIL::Width($oneaa); $h_len_tmp = TEXT_UTIL::Height($oneaa); if($w_len < $w_len_tmp){ $w_len = $w_len_tmp; } if($h_len < $h_len_tmp){ $h_len = $h_len_tmp; } } $this->width = $PADDING * 2 + $FONTSIZE * $w_len; $this->height = $PADDING * 2 + $FONTSIZE * $h_len; } } $aa_class = new AAAnime(); $aa_class->makeAnime(); echo $aa_class->getOutFilename(); ?>