Twitterizerメモ – アイコン画像を取得する

Twitterizerでアイコンを取得する方法です。
プロフィール画像とTLのアイコンでは取得する方法が微妙に違いますが、プロパティは共通して、ProfileImageLocationを使います。
TLから取得するのを例に取ると、

ListViewItem lti = new ListViewItem();
foreach (TwitterStatus t in res.ResponseObject)
 {
    lti = listView1.Items.Add(t.User.ProfileImageLocation);
}
とします。
しかし、このままではリストビューに画像は表示されず、アイコンのURLが表示されてしまいます。
そこで、アドレスから画像を取得してそれをImagelistに追加して表示します。
(参考:[.NET] [C#] Visual Studio Async CTP を試してみる)

コードは以下の通り。
ListViewItem lti = new ListViewItem();
int Imageindex = 0;
Image ia;
foreach (TwitterStatus t in res.ResponseObject)
 {
    var dlq = WebRequest.Create(t.User.ProfileImageLocation);
    var dlr = dlq.GetResponse();

    imageList1.ImageSize = new Size(18, 18);
    listView1.LargeImageList = imageList1;
                                        
    ia = Image.FromStream(dlr.GetResponseStream(),false,false);

    imageList1.Images.Add(ia);
    lti = listView1.Items.Add("", Imageindex++);
}
これでとりあえずは表示されます。しかし、これでは問題があります。
それはTLの本文や表示名を一緒に取得してみるとわかるんですが、初回実行では全然問題ないのですが、2回目以降の実行だとユーザー名とアイコンが1個ずれて表示されてしまうのです。
この問題に関しては現在、解決策を模索中です。

とりあえず、Twitterizerでアイコンを取得する場合は上記に記したとおりです。

スポンサードリンク
Pocket

コメントを残す

メールアドレスが公開されることはありません。