Twitterの画像縮小アルゴリズム

Twitter純正の画像アップロード機能が付与されたが、アップロードした画像が勝手に縮小されるので困った。どのサイズの画像がどう縮小されるのかアルゴリズムを調べだしたのだが、かなり手間がかかった。特に縦長の画像の場合の分岐条件を調べるのが面倒で、縦横比や長辺のサイズで条件が別れるのでなかなか難儀だった。

分岐条件

  • 横長の画像の場合
    • 幅<1200px: 画像の大きさはそのまま
    • 1200px≦幅≦2048px: 幅が半分に縮小される
    • 2048px<幅: 幅1024pxに縮小される
  • 縦長の画像の場合
    • 高さ≦1200px: 画像の大きさはそのまま
    • 1200px<高さ≦2048px
      • 縦横比2:1以下の細長い画像: 高さ1200pxに縮小される
      • 縦横比2:1以上の幅広い画像
        • 600px≦幅≦1200px: 幅が600pxに縮小される
        • 1200px<幅≦2048px: 幅が半分に縮小される
    • 2048px<高さ
      • 縦横比2:1以下の細長い画像: 高さ1200pxに縮小される
      • 縦横比2:1以上の幅広い画像: 高さ1024pxに縮小される

結論

横長画像は幅を1200px未満に、縦長画像は高さを1200px以下にしてアップロードせよ。2011年8月23日にユーザーギャラリー機能が追加されたが、それと同時に縮小アルゴリズムに変更が加えられた。当面は1200px以下に縮小せず、画像はそのままアップロードした方がいい。