ちょっと、技術ネタを放出。
ツイッターのクロールツールを作る中で、プロフィール画像をどうしようかと思っていたのですが、一度ファイルに落とさなくてもプロフィール画像(profile_image_url)をダウンロードしてメモリ上で操作できますよ、という話です。
このテクニック、asp.net mvc の記事を書いていたときに、ASP.NET MVC アプリケーション開発入門: 第 9 回 出力キャッシュの利用 – MSDN サンプル ギャラリー で microsoft の方に教えて頂きました thanx.
1 2 3 4 5 6 | // アイコン表示 WebClient cl = new WebClient(); byte [] pic = cl.DownloadData(profile_image_url); MemoryStream st = new MemoryStream(pic); pictureBox1.Image = new Bitmap(st); st.Close(); |
方法は単純で、WebClient で指定のURLをダウンロードして、byte 配列に入れます。こうすると on memory になるので、MemoryStream を通して、Bitmap に直します。これを PictureBox に代入すれば ok です。
って、簡単に書いていますが、試行錯誤すると結構面倒なもので「ストリームを使ってなんとかできる」ってのを覚えておけば ok です。
C# も java と同じように stream があちこちで使えるようになっているので。
ああ、自分のツイートも3,000を超えてしまったので、twitter api だけでは全てを取得できないんですよね。早く google 経由で取ることも考えないと。いくつか見ていくと、2万ツイートを超える方もかなりいるようなので。