背景: 我正在构建一个与Facebook API一起使用的C#Forms应用程序。我的程序已经可以成功验证并检索朋友ID和名称的完整列表。我理解如何将这些添加到ListView控件中,这部分是成功的。当我的程序请求并收到一个小的JSON文件时,这个过程需要几秒钟。
通过朋友ID的集合,我可以从https://graph.facebook.com/USER_ID/picture获取每个朋友个人资料照片。
有没有人能够在添加图像键的同时将这些互联网源图像添加到我的ImageList中,以便将它们链接到带有用户ID的ListViewItem?
private void populate_Click(object sender, EventArgs e)
{
var fb = new FacebookClient(_aT);
dynamic friends = fb.Get("/me/friends");
// Populate the ImageList
ImageList avatars = new ImageList();
foreach (dynamic item in friends.data)
{
var src = "https://graph.facebook.com/" + item.id + "/picture";
// Add Image from src to avatars ImageList
}
}
请记住,我有一套非常大的图像可供使用。每张图片的JPG应为50 x 50 感谢。
答案 0 :(得分:2)
// Download the bitmap data using an instance of WebClient class.
using (WebClient webClient = new WebClient())
{
foreach (var url in urls)
{
byte[] bitmapData;
bitmapData = webClient.DownloadData(url);
// Bitmap data => bitmap => resized bitmap.
using (MemoryStream memoryStream = new MemoryStream(bitmapData))
using (Bitmap bitmap = new Bitmap(memoryStream))
using (Bitmap resizedBitmap = new Bitmap(bitmap, 50, 50))
{
// NOTE:
// Resized bitmap must be disposed because the imageList.Images.Add() method
// makes a copy (!) of the source bitmap!
// For details, see https://stackoverflow.com/questions/9515759/
imageList.Images.Add(resizedBitmap);
}
}
}
要增加WebClient
课程实例的超时时间,请查看this answer。