2010年9月3日金曜日

Flickrではproアカウントでないとオリジナルサイズが保持できない

サプリーンでは、Creative Commonsライセンスが指定されている写真を検索し、素材として編集できる「CC画像検索」という機能を作っている。

FlickrにアップされているCC画像をユーザーが取得しているときに、画像の取得に失敗するエラーが何度か出ていたので調査したら、結局、Flickrの写真にはOriginalサイズがないものがあるということがバグの原因だった。


ユーザーが画像を検索して取得するときに、ユーザーが大きめの画像を取得するように指定していれば、優先順位として、

1.Largeサイズ
2.Originalサイズ

を、指定していなければMediumサイズを、これまで取得していた。

しかし、Originalサイズが存在しない画像だった場合、最終的に画像パスが設定されずに画像の取得が失敗していた。

そもそも、オリジナルというのだから、そのサイズが存在しないことはないのではと思っていたのだが、それが甘かった。


Flickrのヘルプ「Are there limits on file sizes or file types for uploads?」部分を見ると、以下のように書いてある。

As you publish photos, they're compressed and resized by Flickr (if necessary) in the following sizes:

75x75 pixels
100 pixels (on the longest side)
240 pixels
500 pixels
Large (which will be 1024 pixels if it exceeds that length)
The original size (if you have a pro account)

  1. 75x75ピクセルサイズ(Squareサイズ)
  2. 大きい辺に合わせた100ピクセルサイズ(Thumbnailサイズ)
  3. 大きい辺に合わせた240ピクセルサイズ(Smallサイズ)
  4. 大きい辺に合わせた500ピクセルサイズ(Mediumサイズ)
  5. 1024ピクセルに合わせたラージサイズ(Largeサイズ)
  6. Originalサイズ(proアカウントの場合)

Flickrには上記のサイズがあると書かれているが、最後のOriginalサイズは、proアカウントを持っている場合にしか作られないと明記されている。

加えて、Mediumサイズに「Medium640」という種類がさらに追加されていた。Medium640は、大きい辺に合わせた640ピクセルサイズだ。


よって、大きめの画像を取得するように指定がされていた場合は、

1.Largeサイズ
2.Originalサイズ
3.Meidum640サイズ
4.Mediumサイズ

という優先順位で画像を取得するように変更した。


多くの画像をアットランダムに探してみたが、Mediumサイズが存在しない場合はこれまでなかったので、Mediumサイズが最終防衛線でよいだろう。

ということは、画像によっては、大きめの画像を取得するように指定がされていても、Mediumサイズしか取得できない場合もあるということだ。