現在WEBアプリでないFlickr APIを弄るツールを作成中
Microsoft .NET Framework Version 2.0 で開発しているので、
Flicker.NETを使って楽をしている。
Flicker.NETを実際に見てみるまでは、Flickrから返ってきたXMLを解析して~とかな~り面倒なことをやる
必要があるかなと思ってましたが、
実際はライブラリの方でかなり動作が隠蔽されているため、今のところ直接XMLの内容を全然触ることはありません。
手始めにドラッグ&ドロップが出来るエクスプローラー風のソフトを作ってライブラリを試しています。
ただライブラリの完成度の問題かそれともFlickrの方で仕様が変化しているのか
最初に落としてきた11月版のライブラリでフルサイズの画像の
http://farm1.static.flickr.com/149/378403912_09209310db_o.jpg
を取得しようとすると
そのままではhttp://static.flickr.com/149/378403912_09209310db_b.jpg
と返ってくるため
http://static を http://farm1.static
_b.jpg を_o.jpgとリプレイスしないと実際のファイルを落とすことが出来ない
2月Verのライブラリでは必要な修正個所は1箇所で、
_b.jpg _o.jpg にする部分を直せばよかった。
以下、適当なサンプル
private void Flickrからリストを取得(string apikey, string screenName)
{ //PhotoCollection
try
{
Flickr flickr = new Flickr(apikey);
FoundUser user = flickr.PeopleFindByUsername(screenName);
string userId = user.UserId;
PhotoSearchOptions searchOptions = new PhotoSearchOptions();
searchOptions.UserId = userId;
Photos microsoftPhotos = flickr.PhotosSearch(searchOptions);
//サムネイルのサイズ指定
int width = 75;
int height = 75;
imageList1.ImageSize = new System.Drawing.Size(width, height);
listView1.LargeImageList = imageList1;
int count = 0;
foreach (Photo photo in microsoftPhotos.PhotoCollection) // photos.PhotoCollection, NOT just photos
{
string filename;
filename = photo.SquareThumbnailUrl;
string filename_large;
filename_large = photo.LargeUrl;
filename_large = filename_large.Replace("_b.jpg", "_o.jpg");
Bitmap bitmap;
WebClient wc = new WebClient();
Stream stream = wc.OpenRead(filename);
bitmap = new Bitmap(stream);
stream.Close();
wc.Dispose();
int Width, Height;
Width = bitmap.Width;
Height = bitmap.Height;
Image original = bitmap;
Image thumbnail = createThumbnail(original, Width, Height);
imageList1.Images.Add(thumbnail);
listView1.Items.Add(filename, count);
couint++;
bitmap.Dispose();
original.Dispose();
thumbnail.Dispose();
// メッセージ・キューにあるWindowsメッセージをすべて処理する
Application.DoEvents();
}
// return microsoftPhotos.PhotoCollection;
}
catch
{
MessageBox.Show("Error.");
}
}
Flickrの画像リスト取得とサムネイル作成が混ざってますがサンプルということで...
なんかFlickr APIで面白い使い方があったら教えてね
共同作業してくれる人募集!! SourceForgeで公開しながらやりませんか?