isShrinker
いままでWindows用ソフト縮小専用を使ってブログアップ用の画像
を縮小してましたが、
Macでも使う様になりWeb上で縮小出来るツールを探しましたが
最大ファイルサイズを指定出来る物が無かったので作る事にしました。

仕様は

  1. 画像サイズを640px×480px程度に縮小する。
  2. ファイルサイズは50KB以下にする。
  3. JPEGとPNG形式のファイルに対応。
  4. 出力はJPEGにする。
  5. 出来ればドラッグ&ドロップでファイルの選択を出来る様にする。
  6. Windows、Mac、iPhoneで動作する様にする。
  7. 複数(5個)まで一度に処理出来る様にする。
  8. 実装はphpで。
  9. 変換前のファイルは縮小後に削除。
  10. 縮小後のファイルは縮小後40秒ほどで削除。

でした。

しかし、1の画像サイズを640px×480pxにすると
縦横比が壊れて崩れてるので写真サイズの長辺のサイズを
640pxとして短辺を計算する事で縦横比を固定しました。
iPhoneなどで撮影した場合、写真の向きがexif情報に入っている場合
縮小後の写真がiPhone上で表示される場合と異なる事があるので
exif情報に合わして写真を傾けることにしました。

追加での仕様は

  • 長辺を640pxとして縦横比を固定する
  • exif情報に合わせて向きを調整する

パソコン・iPhone両方使える様に
縮小後の画像はブラウザ上に表示する様にしました。
パソコン上では画像をデスクトップにドラッグ&ドロップ、
iPhone上では画像を長押しすればカメラロールに画像を保存出来ます。

肝心はファイルサイズ指定は自作で
画像の品質を下げてファイルサイズを落としています。
しかし、拡大しなければそれほど荒さは感じません。

スポンサーリンク

50KB専用

それで最初に作ったのは
50KB専用でしたが、アップロードには
Mini AJAX File Upload Formを使いましたがJavaScriptsから
PHPに処理が完全に移らず、
また、ファイル1個しか処理出来なかったので
Mini AJAX File Upload Formはやめました。
次に作ったのがisShrinkerです。

isShrinker

isShrinkerでは複数のファイルも処理出来る様にしました。
ドラッグ&ドロップでの処理開始は止めて、
ファイル選択を出来る様にしました。

また、640pxと50KBに固定していましたが
isShrinkerでは変更出来る様にしました。
これでだいたい、仕様に近づいたと思います。

次はisShrinkerを作るにあたって参考にしたサイトなど
を紹介したいと思います。