ブラウザ上で簡単に画像のサイズ変更や圧縮ができる無料Webツールの作り方を紹介する記事のアイキャッチイメージ。

開発ガイド

画像サイズ変更&圧縮ツールの作り方|HTMLとJavaScriptで簡単実装【初心者向け】

パソコンやスマホで撮った画像は、そのままだとサイズが大きすぎたり容量が重くて、WebサイトやSNSにアップロードしにくいことがありますよね。
もし「自分専用の画像サイズ変更&圧縮ツール」を作れたら、いつでもブラウザ上でサッと加工できて便利です。

この記事では、HTMLとJavaScriptだけで動く、画像サイズ変更&圧縮ツールの作り方を初心者向けにわかりやすく解説します。
ブラウザで開くだけで使えるツールを自作できるので、プライバシー面でも安心です。

この記事を読みながら手順どおり進めれば、

  • 幅や高さを指定して画像をリサイズ
  • 圧縮率を変更して容量を軽くする
  • 1クリックで加工後の画像を保存

といった機能を持つツールが完成します。
プログラミング初心者の方でも取り組める内容ですので、ぜひ一緒に作ってみましょう!

機能概要

今回作成する画像サイズ変更&圧縮ツールは、ブラウザ上で動くシンプルなWebアプリです。
完成すると、次のような画面になります。

  • 画像ファイルを1枚選択
  • 幅や高さを入力してリサイズ
  • 圧縮率(JPEG品質)をスライダーで調整
  • 「画像を保存」ボタンでダウンロード

ポイントは、すべての処理がブラウザ内で完結するため、サーバーに画像を送信する必要がないこと。
これにより、アップロード待ち時間がなく、プライバシー面でも安心して使えます。

今回実装する主な機能

  1. 画像読み込み機能
    input type="file" を使って画像ファイルを読み込みます。
  2. リサイズ処理
    JavaScriptで <canvas> を利用して画像を縮小または拡大します。
  3. 圧縮処理
    JPEG形式で保存する際に品質(圧縮率)を調整できます。
  4. 保存機能
    加工後の画像をワンクリックでダウンロード可能にします。

【実際の画像サイズ変更&圧縮ツールの動作を試してみたい方はこちらからどうぞ】▼

実際に作ってみよう|ステップごとに丁寧に解説

まずは、完成版のコードをそのままコピペして動かしてみるところから始めましょう。
ここで作るのは、HTMLとJavaScriptが1つにまとまった単一ファイル形式のツールです。
ダウンロードもインストールも不要、ブラウザで開くだけで動きます。

手順

  1. メモ帳やVS Codeなどのテキストエディタを開く
  2. 以下のコードをコピーして貼り付ける
  3. resize-tool.html など任意の名前で保存(拡張子は .html
  4. 保存したファイルをブラウザ(ChromeやEdgeなど)で開く

完成版のソースコード(コピー&実行できます)

ブラウザで開くと、

  • 画像をドラッグ&ドロップまたは「ファイルを選択」ボタンから選択
  • 幅と高さの数値を入力してリサイズ
  • JPEGなら画質(圧縮率)をスライダーで変更
  • 加工結果をプレビューしてダウンロード

といった操作が可能になります。

まずは難しいことを考えずに、完成版をそのまま動かしてみるのがコツだよ。動くものを見てから『こういう仕組みなんだ!』と理解する方が、ずっと早く身につくんだ。

ほーく
ほーく

ステップ1:HTMLの基本構造

このツールは 1枚のHTML に「UI(見た目)」「ロジック(動き)」の両方をまとめた構成です。まずは、主要な要素と役割を押さえましょう。

1) 画面の骨組み(ラッパー)

  • class="container":カード風の白いボックス。中にUIをまとめます。
  • canvas id="canvas"実際のリサイズ/圧縮に使う作業用キャンバス(表示はしない)。

2) 画像入力ブロック(クリック & ドラッグ&ドロップ)

  • class="drop-area":ドラッグ&ドロップの受け皿。ハイライト表示のためのクラス切替をJSで行います。
  • id="imageFile"実体はこのinput[type=file]。ボタンでクリックを“代理実行”します(見た目を自由に)。
  • accept:読み込める形式を JPG/PNG/GIF に限定。

3) リサイズ(幅・高さ)入力

  • widthInput / heightInput:どちらかを入力すると縦横比を維持してもう片方を自動計算します(JS側の処理)。

4) 画質(圧縮率)スライダー(JPEGのみ有効)

  • qualityInputJPEGのときだけ有効。PNG/GIFを選ぶと自動で無効化&注記表示(JS制御)。
  • qualityValue:スライダーの現在値表示。

5) 実行ボタン・メッセージ・プレビュー・保存リンク

  • processButton:リサイズ/圧縮の実行トリガー。
  • message:エラーや進行状況(「処理中…」「完了」)の表示。
  • previewImage:処理結果のプレビュー
  • downloadLink生成画像を保存(形式は入力ファイルと同じで、JPEG時は圧縮率が反映)。

HTMLは“何がどこにあるか”の地図。idが“住所”、classが“見た目のルール”だと思うと整理しやすいよ。

ほーく
ほーく

ステップ2:CSSで見た目を整える

HTMLで骨組みを作っただけでは、見た目はシンプルすぎて使いづらいものです。そこでCSS(Cascading Style Sheets)を使って、UIを整え、使いやすく&見やすくしていきます。

このツールでは、以下のようなポイントにCSSを活用しています。

1) ページ全体の基本スタイル

  • 背景色:淡いグレーで目に優しく、中央の白いカードが目立ちます。
  • フォントArial, sans-serifでシンプル&読みやすい文字。
  • 中央寄せmax-widthmargin: 0 autoで画面幅の中央に配置。

2) ドラッグ&ドロップの見た目

  • 点線枠と広めのパディングで、ドロップ領域を明確化。
  • highlightクラスでドラッグ中に色が変わる演出を追加。

3) ボタンのスタイル

  • 青系で視認性&押したくなるデザイン。
  • hover時に色が濃くなるアニメーションで操作感を向上。

4) プレビュー画像とダウンロードリンク

  • プレビューは枠線+余白で見やすく。
  • ダウンロードボタンは緑系で「完了感」を演出。

CSSは“着せ替え”みたいなもの。機能は同じでも、服(デザイン)が変わると使う気持ちも変わるんだよ。

ほーく
ほーく

ステップ3:JavaScriptで動きをつける

ここでは、HTMLで作った構造とCSSで整えた見た目に、実際の機能(動き)をつけていきます。
JavaScriptはユーザー操作に応じて、ファイルの読み込み、サイズ変更、圧縮、そしてプレビュー・ダウンロードまでを制御します。

1) 画像ファイルの読み込み

  • 「ファイルを選択」ボタンやドラッグ&ドロップで画像を受け取ります。
  • FileReader を使ってブラウザ内で画像を読み込みます。
  • 読み込んだ画像は <img> タグに表示し、サイズ情報(幅・高さ)を取得。

2) ドラッグ&ドロップの処理

  • dropAreaにファイルをドラッグすると枠の色を変えてユーザーにわかりやすく。
  • preventDefaults() でブラウザのデフォルト動作(ファイル開くなど)を無効化。

3) アスペクト比の自動計算

  • 幅を入力すると高さが自動計算され、縦横比が崩れないようにします。
  • 高さ入力時も同じように幅を計算して反映。

4) 画像サイズ変更&圧縮

  • canvas に画像を描画し、新しいサイズにリサイズ。
  • JPEGの場合は quality パラメータを使って圧縮率を指定(10~100%)。
  • PNGやGIFは画質変更なしで変換。

5) プレビューとダウンロード

  • 加工後の画像をプレビュー表示。
  • ダウンロードリンクを生成し、クリックで保存できるようにします。

応用テクニック|より便利なツールにするカスタマイズ例

この画像サイズ変更&圧縮ツールは、シンプルな構成なので少しの改造で機能を拡張できます。ここでは、初心者でも挑戦しやすいカスタマイズ案を紹介します。

1. 画像の回転や反転機能を追加

  • 回転:90°単位で右回り・左回り回転ボタンを追加。
  • 反転:上下反転や左右反転も可能。
  • Canvas APIの ctx.rotate()ctx.scale() を活用。

回転や反転は画像加工ツールでよく使われる機能。Canvasを使えば意外と簡単に追加できますよ。

ほーく
ほーく

2. 複数画像の一括処理

  • 今の仕様は1枚ずつ処理ですが、ループ処理を追加すれば複数枚まとめてリサイズ&圧縮も可能。
  • 処理速度やブラウザ負荷に注意しつつ実装すること。

3. 出力形式の選択機能

  • JPEG/PNG/GIFから、ユーザーが希望する出力形式を選択可能にする。
  • 例)PNGをJPEGに変換して容量を軽くするなど。

4. SNS投稿に最適化

  • Twitter(X)やInstagramの推奨サイズ(例:Twitterは横1200px、縦675px)をプリセットとして選べる機能を追加。
  • プリセットボタンを押すだけで幅・高さを自動設定。

ポイント

  • これらのカスタマイズは、HTMLやJavaScriptの基本を押さえれば少しずつ追加可能です。
  • 新しい機能を追加するときは、UI(ユーザーが直感的に使えるデザイン)も忘れずに調整しましょう。

おすすめの学習リソース|画像加工&JavaScriptをもっと学びたい人へ

「今回のツールをもっと改造してみたい!」「画像処理の仕組みやJavaScriptを深く理解したい!」という方に向けて、厳選した学習リソースをご紹介します。

書籍編

『確かな力が身につくJavaScript超入門』(SBクリエイティブ)

  • JavaScriptの基礎文法からDOM操作、イベント処理まで体系的に学べます。
  • 今回のようなWebツールを自作するスキルが自然と身につきます。
  • 実例が豊富なので、「こういう機能を作りたい!」という時の参考書にもなります。

『スラスラわかるHTML&CSSのきほん』(SBクリエイティブ)

  • HTMLやCSSの基本構造から、見た目を整えるためのテクニックまでを網羅。
  • ツールのUI(ユーザーインターフェース)を改良する際に役立ちます。
SBクリエイティブ/狩野祐東

オンライン講座編

Udemy|世界最大級のオンライン学習プラットフォーム

世界中で利用されるオンライン学習サイト。
HTML、CSS、JavaScriptの入門から応用まで、高評価の講座が数百種類揃っています。
初心者でも動画を見ながら手を動かせるので、挫折しにくいのが魅力です。

まとめ|画像サイズ変更&圧縮ツールの作り方

今回の記事では、HTMLとJavaScriptだけで動く「画像サイズ変更&圧縮ツール」の作り方を紹介しました。
このツールはブラウザ上で完結し、サーバー送信も不要なため、安全性が高く、安心して利用できます。
また、JPG/PNG/GIFに対応し、画質調整やアスペクト比の自動計算など、シンプルながら実用的な機能を備えています。

今回の学びポイント

  • HTMLでUI(ファイル選択・入力欄・ボタンなど)を作成
  • CSSで使いやすく、見やすいデザインに整える
  • JavaScriptでリサイズや圧縮処理を実装(canvasを活用)
  • JPGの画質調整、アスペクト比の自動計算などの便利機能

今回ご紹介したコードは、そのまま使えるのはもちろんのこと、
少し手を加えることで、あなたならではのオリジナルツールに発展させることもできます。
たとえば機能を追加したり、デザインを変えたりすることで、より実用的で魅力的なWebアプリへと成長させることができるでしょう。

この記事を参考に、まずはシンプルなツール作りから始めてみてください。
「自分で作ったものが形になる」という体験は、次のアイデアや学びへと必ずつながっていきます。
ぜひこのツールを、あなたのWebアプリ開発の第一歩として活用してみてください。

まずは小さな成功体験を積み重ねていくことが大切ですよ。
今回のツールから少しずつ機能を追加していけば、きっと素晴らしいオリジナルアプリが完成します。

ほーく
ほーく

関連記事

【実際の画像サイズ変更&圧縮ツールの動作を試してみたい方はこちらからどうぞ】▼

-開発ガイド
-, , , , ,