画像変換・リサイズ (Image Converter & Resizer)

本ツールは,ブラウザの描画機能(Canvas API)を用いて画像リサイズや画像形式変換を行います.10〜150%の縮小・拡大比率や,ピクセル単位での幅・高さ指定によるサイズ変更と,JPEG・PNG・WebPへの出力に対応しています.画像処理はお使いの端末内で実行されますが,端末の空きメモリやブラウザの仕様に依存します.巨大なファイルでは処理が失敗する可能性があり,元のメタデータやアニメーションは保持されません.

読み込み中...

このツールが向いている用途

操作欄に戻る ↑

端末内の画像をブラウザ上でJPEG/PNG/WebPに変換し,一括または個別でリサイズ・保存したい用途に向いています.

まず試せること

320x160のPNGを倍率50%かつPNG形式に指定して処理すると,160x80のPNGとして保存されます.

利用条件

縦横比固定では最後に変更した幅または高さを基準に元の比率を保ち,固定解除では指定寸法へ変形します.アニメーション・メタデータやJPEGの透過は保持せず,容量削減は保証されません.

ZeroToolsのブラウザ内処理とプライバシー

ZeroToolsは,入力内容を端末内で処理するツールを中心に提供しています.各ツールの対応範囲と制限を確認して利用してください.

データの取り扱い・プライバシー方針
第1章

ブラウザAPIを利用した入力形式の解釈と静止画化プロセス

本ツールの画像読み込み機構は,HTML5で規定されるFile APIとCanvas APIの連携によって構築されています.利用者がローカル端末から選択した画像ファイルは,画像データとして外部のサーバーへ送信される挙動を持たず,ブラウザのメモリ空間内に直接Blob(Binary Large Object)として展開されます.

このBlobデータはブラウザ内部の画像デコーダによって解析され,ピクセルデータとしてキャンバスのコンテキスト上に描画されるプロセスを経ます.

この描画プロセスにおいて重要な制約となるのが,ブラウザのデコード処理です.一般的なWebブラウザは複数の入力形式を表示できますが,Canvasへ再描画して出力する本ツールはアニメーションの全フレームと再生時間を引き継ぎません.アニメーションGIFを入力した場合も,ブラウザが描画時点でデコードした1枚の静止画として出力されるため,アニメーション変換には利用できません.

また,アルファチャンネル(透過情報)を持つ入力画像に関する振る舞いも,出力時のフォーマットに依存します.入力段階ではRGBA(赤,緑,青,透過度)の各チャンネルがメモリ上に展開されますが,これを処理する過程において,キャンバスの背景は標準で透明として扱われます.

透過ピクセルを含むPNG画像を読み込んだ時点ではその透過状態が維持されていますが,後述のエンコード処理において透過をサポートしない形式を選択した場合,それらのピクセルはデフォルトの合成色(多くの場合,黒色またはブラウザ依存の背景色)とブレンドされる形で統合されます.

利用者は,透過を必要とするロゴマークやアイコンの処理を行う際,この静止画化と色空間の取り扱いについて事前の確認を行う必要があります.

第2章

再描画時の比率指定とカスタム寸法の算出ロジック

画像リサイズの核心部分は,元画像のピクセルグリッドを新たな寸法のグリッドへと再マッピングする再描画プロセスにあります.本実装では,利用者に対して「比率による縮小(%指定)」と「ピクセル単位のカスタム寸法指定」という2系統のインターフェースを提供しており,それぞれ異なるロジックで対象の描画領域サイズを決定しています.

「比率による縮小」モードを選択した場合,ツールは現在選択されている個別の画像が持つ本来の解像度(オリジナル幅および高さ)を基準値とします.提供されるスライダーインターフェースから10%から150%までのスケール値を取得し,元寸法のそれぞれに対して乗算を行います.

得られた浮動小数点数は,ピクセルという離散的な単位に適合させるために処理を経て整数化されます.この手法は,解像度がそれぞれ異なる複数枚の画像を同時に読み込んでいる状況において,それぞれの画像に対する相対的な縮小または拡大を適用する際に有効に機能します.

一方,「ピクセル指定」モードでは,利用者が入力フィールドに指定した幅と高さを基準にキャンバス寸法を決めます.「アスペクト比を固定」が有効な場合は,最後に編集した側の寸法を基準として,処理する各画像が持つ元の縦横比からもう一方の寸法を個別に算出します.比率の異なる画像をまとめて処理しても同一比率へ強制しない設計ですが,全画像の幅または高さのどちらを共通基準にするかは事前に確認してください.

設定を変えただけでは処理済み画像は更新されないため,変更後は再度変換を実行します.

第3章

出力フォーマット(JPEG・PNG・WebP)の特性と選択基準

キャンバス上に再描画されたピクセル配列を再度ファイルとして出力するフェーズにおいて,本ツールはブラウザに組み込まれたエンコーダを呼び出します.実装上,出力可能な主要フォーマットとしてJPEG,PNG,WebPが提供されており,それぞれ異なるデータ構造と圧縮特性を持っています.

JPEG(image/jpeg)形式は,写真やグラデーションを多用する画像において広く用いられる標準的な非可逆圧縮フォーマットです.人間の視覚特性を利用して高周波成分を間引くことでファイルサイズを削減しますが,透過情報(アルファチャンネル)を保持する機能を持ちません.そのため,透過PNGなどをJPEGとして出力すると,透明部分は不透明な色で塗りつぶされた状態となります.

PNG(image/png)形式は,可逆圧縮アルゴリズム(Deflate)を採用したフォーマットであり,ピクセルの色情報とアルファチャンネルを保持できる特徴があります.リサイズ後の境界線の鋭さや,テキストを含むスクリーンショットのクリアな品質を維持したい用途に適していますが,写真のような色数の多い画像に対して適用した場合,他の形式と比較して生成されるファイルサイズが膨大になりやすい傾向があります.

本ツールの実装において,PNG形式を選択した場合は後述する画質パラメータの指定はエンコーダ側で無視され,品質低下を伴わない可逆圧縮が行われる仕様となっています.

WebP(image/webp)形式は,近代的なブラウザで広くサポートされるようになった高効率なフォーマットであり,非可逆圧縮と可逆圧縮の両方,さらにはアルファチャンネルの保持も単一の規格内でサポートします.JPEGと比較してより優れた圧縮効率を持つことが多く,ウェブサイトへの掲載用途などで容量の削減を優先とする場面で推奨される選択肢です.

利用者は,最終的な出力画像の用途を考慮し,ドロップダウンメニューから適切なフォーマットを判断して適用する必要があります.

第4章

品質値(クオリティ)パラメータと生成容量の相関性

画像データの圧縮において,ファイルサイズと視覚的な明瞭さはトレードオフの関係にあります.本ツールでは,JPEGおよびWebP形式での出力が選択されている場合において,10から100までの数値で画質クオリティを指定するスライダーインターフェースが有効化されます.

この数値は,最終的にCanvasの出力メソッドへ渡される0.0から1.0までの引数として変換され,ブラウザ内蔵のエンコーダに対する圧縮の度合いを指示するパラメータとして機能します.

品質値を100に設定した場合,エンコーダは視覚的な品質低下を抑えようと振る舞いますが,これは無圧縮を意味するものではなく,設定されたフォーマットの枠組みの中で高品質な非可逆圧縮が行われることを意味します.数値を下げるにつれて,画像内の隣接するピクセル群がより大きなブロック単位で近似され,色情報の量子化が強く適用されるようになります.

特に品質値を低く設定したJPEG出力においては,境界線周辺に不要なアーティファクトが発生しやすく,平坦な領域ではブロック状の境界が視認できるようになります.

ここで留意すべきは,画面上に表示される容量差の計算ロジックです.プレビュー画面では,選択中の画像を実際に処理して得たBlobサイズと,元のファイルサイズを比較します.ピクセル寸法を半分にしても,元画像の圧縮効率や出力品質によっては,変換後のファイルサイズが元より大きくなる場合があります.

容量を事前予測して目標値へ自動調整する機能はないため,設定を変更した後は再度処理を実行し,更新された容量と見た目を比較してください.

第5章

複数画像に対する順次処理パイプラインと個別保存メカニズム

複数の画像ファイルがドロップエリアに投入された際,本ツールはそれらを内部的なリストとして管理し,「全画像を一括変換・リサイズ」ボタンの押下をトリガーとして処理パイプラインを稼働させます.この一括処理は,リストに登録されたすべてのファイルに対して,UI上で設定された現在のパラメータ(寸法,フォーマット,品質値)を共通のルールとして適用し,プログラムのループ処理によって一つずつ順番にCanvas上での描画とBlob生成を実行する順次処理メカニズムです.

処理が完了し「変換後の画像をダウンロード」アクションが呼び出されると,生成された各ファイルのBlobデータから一時的なオブジェクトURL(Object URL)が生成されます.保存機能の実装としては,ブラウザ上で目に見えないリンク要素を動的に生成し,それぞれの画像に対して順次クリックイベントをプログラムから発火させることでダウンロードを開始させる方式が採用されています.

この方式により,即座にファイルの受け渡しが可能となりますが,利用者のブラウザのセキュリティ設定によっては注意が必要となります.多数のファイルを極めて短い間隔で連続してダウンロードしようとする挙動は,ブラウザ側で「複数ファイルの自動ダウンロード」として検知され,2枚目以降の保存が一時的にブロックされ,利用者に許可を求めるダイアログが表示されることがあります.

また,ダウンロードされる各ファイル名は,元画像のファイル名をベースとして末尾に指定の文字列と新たな拡張子が付与された形で生成されます.大量のファイルがダウンロードフォルダに個別のファイルとして保存される結果となるため,事前のフォルダ整理が推奨されます.

第6章

メタデータの破棄と実行環境におけるメモリリソースの制約

デジタルカメラやスマートフォンで撮影されたオリジナル画像には,Exif情報として撮影日時,GPSによる位置情報,カメラの機種設定,ICCプロファイル(カラーマネジメント情報)などの多様なメタデータが付与されていることがあります.しかし,本ツールが採用しているCanvas APIを経由した画像処理アーキテクチャでは,データからピクセル情報のみをデコードして描画空間に展開し,そこから純粋なピクセル情報のみを再エンコードして新たな画像を生成します.

この過程において,元ファイルに含まれていたExifやICCプロファイルなどのメタデータ領域は参照されず,最終的な出力ファイルには引き継がれません.これはプライバシー保護の観点からは位置情報などが公開されることを防ぐ利点となる反面,写真の撮影記録や厳密なカラープロファイルを維持したい用途においては情報の欠落となるため,処理前の判断が不可欠です.

また,処理が利用者の実行環境(クライアントサイド)に依存するという特性は,端末のハードウェアリソースによる制約を受けることを意味します.Webブラウザはタブごとに割り当てられるメモリの上限を定めており,高画素数の画像(数千万ピクセルに及ぶファイルなど)を読み込んでCanvas上に展開すると,非圧縮の配列としてメモリを大きく消費します.

巨大な画像を複数同時にリストに登録し,さらに比較用のプレビューレンダリングを並行して行った場合,ブラウザのメモリ管理が追いつかず,タブのクラッシュやページの強制リロードが発生するリスクが存在します.本ツールの実装では,生成された不要なObject URLを破棄してメモリの圧迫を防ぐ仕組みは組み込まれているものの,物理的なメモリ制約を超える処理要求に対しては耐性がありません.

そのため,メモリ搭載量の少ないスマートフォンなどのモバイルデバイス環境や,極端に解像度の高い画像を扱う際には,一度に処理する枚数を数枚程度に制限する,あるいはバックグラウンドで起動している他のアプリケーションやタブを終了させてリソースを確保するといった,利用者側での運用上の工夫が求められるシステム設計となっています.

よくある質問(FAQ)

A.
入力は最大50件、1件30 MiBまでです。出力は一辺8,192px、総画素数16,777,216までです。保存形式はJPEG・PNG・WebPで、ブラウザが指定形式を出力できずPNGに切り替わる場合は拡張子も.pngになります。
A.
維持されません.本ツールは画像をブラウザのCanvas上に展開して再描画するため,GIFアニメーションはブラウザがその時点でデコードした1枚の静止画として出力されます.アニメーション変換には使用できません.
A.
変換が完了した画像は,ZIP圧縮ファイル等にまとまる仕様ではなく,ブラウザのダウンロード機能を通じて1枚ずつ順次個別に保存処理が開始されます.ご利用のブラウザのセキュリティ設定によっては,複数ファイルの連続保存に対する許可を求められることがあります.
A.
ピクセル寸法を縮小した場合でも,出力形式(透過PNGなど)や指定した画質パラメータによっては,元画像に適用されていた圧縮効率を下回ることがあるためです.ファイルサイズを優先する場合は,WebP形式への変更や画質スライダーの数値を調整して結果をプレビュー領域で比較検証してください.
A.
「アスペクト比を固定」を有効にすると,最後に編集した幅または高さを基準として,処理する画像ごとに元の縦横比からもう一方の寸法を計算します.比率が異なる複数画像でも,同じ比率へ押し込まず個別に処理します.
A.
ブラウザが一度に扱えるメモリ上限を超過すると,処理エラーになるか,ページが強制的に再読み込みされる現象が発生します.高解像度の写真などを複数同時に読み込んだ場合,モバイル端末などメモリ制限が厳しい環境では処理を完了できないことがあります.大容量のファイルは数枚ずつに分けて実行することをおすすめします.