APIで取得したAmazonの商品画像を簡単に拡大縮小する方法

Amazonの商品画像って、APIで取得したものは、Mで160pxとかSで75pxとか決まっていて、 その中間が欲しいときはちょっと面倒です。 Mだと以下のような縦横最大160pxで返ってきます。 絶望先生 http://ecx.images-amazon.com/images/I/51TRYAJVEPL._SL160_.jpg Amazonの場合、URLの数値(上記太字)を変えれば作り直してくれるので、サーバー負荷の高い 画像処理は行わずに簡単に好きなサイズの画像が取得できます。 もちろん、準備されているサイズ以下のものですが。 そもそも画像のキャッシュはしちゃいけないので画像処理すると規約違反かもしれません。 PHPだと↓のような感じで。
$ResizeIMG_URL=str_replace('_SL160_','_SL135_',$GetIMG_URL);
$GetIMG_URLは取得した画像で(この場合はM[縦横最大160px])を $ResizeIMG_URLが縦横最大135pxに変換されたURLです。 Sサイズは「_SL75_」を、Mサイズは「_SL160_」を好きなのに置換すれば今のところできそうですね。 _SL●●_を取るとAmazonにある最大サイズの画像が返ってくるっぽいです。 160pxまでしかAmazonに無いときに、SL500と指定しても、エラーにならずAmazonにある最大サイズのものが返ってきます。 SLとかAAとかオプションはShiz LabsさんのAmazon商品画像のカスタマイズ(理論編)が参考になります。 狭い所に画像だけで並べるときはAA(正方形に整形)がいいですね。 また、imgタグの属性等で縦横サイズを使っている場合は
$ResizeIMG_W=ceil($GetIMG_W*(135/160));
$ResizeIMG_H=ceil($$GetIMG_H*(135/160));
のような感じで、元々取得した縦横サイズに 倍率を掛けた(割ってもいいけど)したものをceil()(小数点切り上げ)するとぴったり合いました。