クリエイター向け・特定比率固定リサイズ型スクリーンショット拡張機能
プロジェクト概要
SnapFitは、動画編集者やブロガー、SNSクリエイターがWebサイトから素材を収集する際の「リサイズ」と「比率調整」の手間をゼロにするために開発されたGoogle Chrome拡張機能です。既存の汎用ツールでは解決できなかった「特定のアスペクト比で、特定の解像度に一瞬で変換する」という課題を、独自のロジックで解決しています。
開発の背景と目的
日常的なコンテンツ制作において、以下の3つの「微細だが積み重なるストレス」を解消することを目的としています。
- YouTube(16:9)やTikTok(9:16)などの決まった枠に合わせるために、マウスで数ピクセル単位の微調整を行う手間の削減。
- キャプチャした後に画像編集ソフトを開き、解像度を1280×720などの推奨サイズへ変更する手間の削減。
- 大量の素材を集める際に、ファイル名の変更や保存場所の選択を繰り返す作業の自動化。
主要な機能紹介
SnapFitには、クリエイターのワークフローを爆速化するための3つのコア機能が搭載されています。
- アスペクト比ロック機能
ドラッグ時に16:9、9:16、1:1、4:3といった主要な比率で範囲選択を強制的に固定します。 - 高品質自動リサイズ
選択した範囲がどれほど小さくても大きくても、設定された目標解像度(例:1920ピクセル)に高品質な補間アルゴリズムを用いて自動的に拡大・縮小して保存します。 - 即時保存と自動命名
マウスを離した瞬間にダウンロードが実行されます。ファイル名にはWebサイトのタイトルが自動的に付与され、整理の手間を最小限に抑えます。
技術的実装のハイライト
Chrome拡張機能の最新仕様であるManifest V3に準拠し、以下の技術的工夫を凝らしています。
- キャンバスAPIによるリアルタイム処理
ブラウザメモリ上で画像を動的に描画し、座標を物理解像度に変換して高品質なリサイズ処理を行っています。 - 非同期メッセージング通信
バックグラウンドサービスワーカーと、各Webページに注入されるコンテンツスクリプト間で、設定情報と画像データを高速にやり取りする仕組みを構築しました。 - 永続的なストレージ管理
ChromeストレージAPIを活用し、ユーザーが一度設定した比率や好みのフォーマットを、ブラウザを閉じても維持されるように設計しています。 - 動的なUI注入
CSSの最大レベルの優先度(z-index)を利用し、あらゆるWebサイトのデザインを邪魔せず、かつ操作性を損なわない透明な操作レイヤーを実現しました。
使用した技術スタック
- プログラミング言語:JavaScript (ES6+)
- プラットフォーム:Chrome Extension Manifest V3
- 主要API:Tabs API, Downloads API, Storage API, Scripting API, ContextMenus API
- フロントエンド:HTML5, CSS3 (Modern Flexbox / DOM Manipulation)
開発を通じて学んだこと
本プロジェクトを通じて、ユーザーが実際に求めている「単一用途(Single Purpose)」の価値を定義し、それを技術で実現する楽しさを再確認しました。特に、セキュリティ制限の厳しいブラウザ環境下で、いかにユーザーフレンドリーな操作感を実現するかというデバッグ作業は、エンジニアとしての粘り強い解決能力を養う大きな糧となりました。


※コメントポリシーはこちらから。