【メモ】 画像の縦横比を維持したまま、画像サイズを一定の範囲内に縮小
縦横共に300px以内でかつ縦横比を維持したまま画像を縮小したかったので簡単なJavaScriptを書いてみた。 画面内の画像全てに適用するとするとこんな感じ。
var maxWidth = 300;
var maxHeight = 300;
var elements = document.getElementsByTagName("img");
for(i=0;i height) {
elements[i].width = Math.min(width, maxWidth);
} else {
elements[i].height = Math.min(height, maxHeight);
}
}
まぁはっきり言うと、「縦横比の維持」は基本的にブラウザ任せですね。
片方だけ指定すればもう片方は自動で計算される…というのは仕様的にどうなのだろう。
なお、幅だけを一定以内に収めたければこれをimgタグに置くだけで良いのだけど、
onload="this.width = Math.min(this.width, 300)";
縦長の画像(例えば縦1,000px/横100px)の場合に逆に拡大されてしまってはみ出る。
それを回避するためには、縦か横かどっちかデカイ方に対して適用すればOKと。
なんか処理を共通化する良い方法がありそうな気がするけど…まぁいいか。とりあえず。

ニコニコ動画に関連して、ちょっとアグレッシブなデータ蓄積を行っているのだけど、計算したらば色々と無理が。
始めはバッチ処理の時間のことを気にしていて、だいたい1年くらいで限界が来るなぁなんて思っていたのだけど、
よくよく考えたらそれよりも先にストレージの問題が来るなぁと言うことに気付いた。
MySQLのレコード数50万件でだいたい100MBになる案件なので、
さくらのVPS512(ストレージ20GB)では最大で5,000万件くらいまでしか保管できない。
日が経つ毎に1日の増分が大きくなるのだけど、仮に1日100万件だと1ヶ月でストレージ終了。
元々さくらはストレージが小さめではあるんだけど、まーそう言う問題じゃなく、
そもそもこの企画自体が無理だったんだなぁ。
とはいえ諦めてしまうのも惜しいので、なんとか実現できる方法はないかなーと思いつつ、
クラウドか…ということでAmazonがやっているRDBサービス、「Amazon RDS」を検討してみた。


SEOの終わりとソーシャルとnanapiのコンテンツの未来 – ロケスタ社長日記 @kensuu