人工無脳ユウヤ - 75日目(スタンプつくるよ!)

4.000になりましたー!
ユウヤ君が新しく”スタンプを彫るだけの簡単なお仕事”の特技を身に付けました。
あそびかたはIDページに書いたのでこちらを見てくださいねっ
http://h.hatena.ne.jp/tukihatu/9234263962916463711/
作ったもの一覧はこちらっ
http://f.hatena.ne.jp/master_yuya/


では技術の話。
今回のスタンプ機能は、かなり脆いつくりになっております。まあいつものことなんですが…
どの辺りが脆いかというと、別々のサービスを多数使っているところです。
今回はPHP、外部メールサーバ、フォトライフの三つを使っています。自分の権限がある場所はPHPのみであり、もしも外部メールサーバがふっとんだり、フォトライフRSS生成が遅かったりすると全く動かなくなるという欠陥があります。


ちなみに流れはこうです。
はてなハイクのユウヤNEWS内で画像と”スタンプ”という文字を入力
・画像を読み込み正常な画像なのかをスキャン
・GDライブラリを使って画像加工
・出来た画像をメールに添付し、外部メールサーバのsmtpフォトライフに送信
フォトライフがメールを受け取り、画像UPする
フォトライフRSSを作成
RSSPHPで読み、番号を収得
・イメージとしてはてなハイクの記事に返信
…となっています。メールサーバやフォトライフの部分を、自宅メールサーバとか自宅HDDとかにすれば権限があるので安定するんですけど、余裕ないし。
なのでデータ受け渡しの部分でエラーがいくつかありました。んーまあこのサービスなら許容範囲内かなぁと思いますが…


さて!画像加工の部分についてですが!
いやー、意外とすんなりいけたんですよねー。GDスゲエ。
こちらを大いに参考にさせていただきました!ありがとうございます!
http://d.hatena.ne.jp/flashrod/20061118
…なんかソース書いて説明するのはいやだから解読してください。読めばきっとわかる。


まずは、元画像をスケッチ風にします。IMG_FILTER_MEAN_REMOVALですね。
スケッチ風にすることで、線がはっきりするのと、多少ゴミくずっぽい線が浮き出ます。
ぼやけた絵とかはこれをしないとなんも表示してくれなかったので…
次にガウスをかけます。これをすることで、さっきはっきりさせた線をまたぼかします。意味無いように見えますよね^^;
適度にぼかすことによって、線を太くする効果があります。
次にいよいよお待ちかねのIMG_FILTER_EDGEDETECT…を実は使いません。
今回エッジ処理は使ってないです。そのままIMG_FILTER_GRAYSCALEを使って二階調化します。
次に画像色を反転します。ここはブライトネス逆にいじれば必要ないかも。
次は画像をsmooooth・∀・します。最高レベルでなめらかぼやぼやにします。レベル範囲調べるの面倒だったから適当に255にしときました。
次はブライトネスで線を太くします。50を設定しています。
よって、205以下(反転してるので50以下)の色はこの時点で真っ白になります。
お次はコントラスト。こいつを最大まで。-255です。
で、画像色を反転して元に戻し、最後にIMG_FILTER_COLORIZEで色を付けて完成!
今回は、完成したものに枠を付けて保存してます。
ね?簡単で(ry
まあ簡単に言えば、輝度で色をある程度飛ばし、飛ばなかった線をコントラストでくっきりさせます。
本当はコントラストだけでいけるかと思ったんですが、意外にグレー色が残ってしまったので仕方なく。二極化のフィルタも無かったし。
エッジを使わなかったのは、意外に線が細く版画っぽくならなかったからですね。残念な結果でした…


やってみたい人はぜひやってみてね!あんまり役には立たないと思うけど!
以上!


あとちなみに…
Q.もしかして思いついたのってめりものあのスタンプ?
A.No。その前にナンシー”小”関風のことを知り合いに教えてもらっていて、スタンプに出来たら面白いなーと企画してました。正直めりもスタンプが出てきたときは心臓がとまるかと…
Q.専用キーワードでやれば?
A.一気に燃え上がりすぐ鎮火しそうだなーという脳内シミュレーション結果になりました…。この機能って元が有限で、次第にネタが無くなるタイプですからね……
あと頑張れるとしたら、スタンプの色を変えられるようにしたり、とか?とはいえ元画像も有限なので無理だろうなと…
これが天気予報とかニュースみたいな無限なら長く続くと思うんですけどねー。