Skip to content

Repository files navigation

EdgeCompressor

ユーザーが画像をアップロードし、品質調整・リサイズ・形式変換を行える Web アプリケーション。
直感的な GUI でバッチ処理にも対応した高機能な画像圧縮ツールです。

🌟 主要機能

📁 画像アップロード

  • ドラッグ&ドロップ対応: 簡単に画像をアップロード
  • 複数ファイル同時選択: 一度に複数の画像を処理
  • フォルダ選択対応: フォルダ内の画像ファイルを一括で処理
  • 大容量ファイル対応: 最大1GBまでの画像ファイルをサポート
  • プレビュー表示: アップロード前に画像を確認

⚙️ 圧縮設定

  • 品質調整: スライダーでの直感的な品質設定 (1-100%)
  • リサイズ: 幅・高さの指定、アスペクト比維持オプション
  • 形式変換: JPEG ↔ PNG ↔ WebP の相互変換

🔄 バッチ処理

  • 複数画像の一括処理: すべての画像を一度に圧縮
  • 個別処理: 画像ごとに個別に圧縮処理
  • 処理状況表示: リアルタイムで処理状況を確認

💾 ダウンロード

  • 個別ダウンロード: 処理済み画像を1つずつダウンロード
  • ZIP一括ダウンロード: すべての処理済み画像をZIP形式でまとめてダウンロード
  • ファイルサイズ比較: 処理前後のファイルサイズを表示

🛠️ 技術スタック

  • フレームワーク: Next.js 15 (App Router)
  • 言語: TypeScript
  • 画像処理: Sharp (高性能な画像処理ライブラリ)
  • ファイル圧縮: JSZip (ZIP形式でのファイル圧縮)
  • スタイリング: Tailwind CSS → 将来的にMaterial-UIに移行予定
  • パッケージマネージャー: npm

📋 対応画像形式

  • 入力: JPEG, PNG, WebP
  • 出力: JPEG, PNG, WebP (相互変換可能)

🚀 インストール

Homebrew (macOS Apple Silicon)

brew tap wadoyoka/tap
brew install EdgeCompressor

開発環境セットアップ

前提条件

  • Node.js 18.0以上
  • npm
# リポジトリをクローン
git clone https://github.com/wadoyoka/image_compression.git
cd image_compression

# 依存関係をインストール
npm install

# 開発サーバーを起動
npm run dev

ブラウザで http://localhost:3000 を開いてアプリケーションを確認できます。

📜 利用可能なスクリプト

# 開発サーバー起動 (Turbopack使用)
npm run dev

# プロダクションビルド
npm run build

# プロダクションサーバー起動
npm start

# コード品質チェック
npm run lint

🏗️ プロジェクト構造

src/
├── app/
│   ├── api/
│   │   ├── compress/
│   │   │   └── route.ts     # 単一画像圧縮API
│   │   └── compress-batch/
│   │       └── route.ts     # バッチ画像圧縮API
│   ├── favicon.ico          # ファビコン
│   ├── globals.css          # グローバルスタイル
│   ├── layout.tsx           # ルートレイアウト
│   └── page.tsx             # メインページ
└── components/
    ├── ImageUploader.tsx    # 画像アップロード機能
    └── ImageProcessor.tsx   # 画像処理・表示・ZIP機能

🎯 使用方法

  1. 画像をアップロード:
    • ドラッグ&ドロップまたはクリックで画像を選択(最大1GB)
    • フォルダ選択モードで画像フォルダを一括処理
  2. 設定を調整: 品質(1-100%)、サイズ、出力形式を指定
  3. 圧縮実行: 個別または一括で画像を処理(Sharpによる高品質圧縮)
  4. 結果確認: 圧縮率とファイルサイズの削減量を確認
  5. ダウンロード: 処理済み画像をダウンロード

🌐 デプロイ

Vercel (推奨)

最も簡単なデプロイ方法は Vercel Platform を使用することです。

詳細は Next.js デプロイメントドキュメント を参照してください。

🔮 今後の予定

近日実装予定の機能

  • 進捗表示の改善: より詳細な処理状況表示
  • 画像フォーマット拡張: AVIF、HEIC等の対応検討
  • UI/UX改善: Material-UI導入とデザイン向上
  • 処理最適化: より高速な画像処理アルゴリズム

📄 ライセンス

このプロジェクトは MIT ライセンスの下で公開されています。

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages