Hatena::Groupgive-me-money

cxxの日記

 | 

2011-05-21

Twitterに画像を文字列として投稿する

22:53 | はてなブックマーク - Twitterに画像を文字列として投稿する

Twitterに画像を投稿するときに、外部サービスに投稿してリンクをTwitterに貼るのはださいので直接Twitterに投稿する。

下のRubyスクリプトで、引数に与えたファイルやURIの画像を文字列にできる(要ImageMagick + RMagick)。とりあえず動けばいいと思って書いたのでMacじゃないと動かないかも知れない。Twitterで投稿できるのは140文字までだけど、バイト数じゃなくて文字数なので、Unicodeにある文字ならたぶんどれでも140文字まで投稿できる。存在しない文字を投稿しようとして変なことになったら面倒なので、とりあえずU+4E00から2万字ぐらい漢字が連続している部分を使って、1文字に14ビットのデータを入れることにした。Twitterに投稿しただけだとよく分からない漢字の文字列だけど、

http://gyazo.com/f343ea1b8bc3ebcb67f1e5cd03662563.png

展開用のuser scriptを入れるとこうなる。

http://gyazo.com/4a7f5595d5c5b939be5896dbe64660f4.png

16384色中16色で18×18ピクセルの画像が投稿できる。展開用のスクリプトは最初は適当にtableを使ってたけど、id:fubaさんがcanvasを使うように書き換えてくれた。

データの形式としては先頭の最大16文字がパレットになっていて、1色をRGBの5:5:4ビットずつで表現している。残り108文字は1文字当たりに4ビットの画素が3つ入っている。

本当はサーバに画像を投稿したらこの文字列が返ってきて、それをpathとしてサーバにリクエストすると元の画像が取得できるようにしたかったけど面倒そうなので一旦やめる。

 |