画像フィルター&エフェクト

フィルターを適用し、明るさ、コントラスト、彩度などを調整します。

ファイルはお使いのデバイスから出ません

ここに画像をドラッグ&ドロップ

またはクリックして参照 · JPEG、PNG、WebP、GIF、BMP、AVIFなど

「画像フィルター」が実際にピクセルに何をするか

画像フィルターは、すべてのピクセルに適用される数学的操作です。このツールの各フィルターは、特定の変換に対応しています。明るさ150%は各カラーチャンネルを1.5倍 (最大値でクランプ) し、画像全体を明るくします。コントラスト150%は中間点周辺の値を引き伸ばし、暗いピクセルをより暗く、明るいピクセルをより明るくします。彩度は全体的な明るさを保ちながら、色をグレーに近づけたり遠ざけたりします。色相回転は選択した角度で各色を色相環の周りで回転させます。セピアはRGBを暖かい茶色がかったパレットにマップする固定の3x3マトリックスを適用します (R' = 0.393R + 0.769G + 0.189B、およびG'とB'の類似の式) 。グレースケールはITU-R BT.601係数 (0.299、0.587、0.114) を使用して各ピクセルを輝度加重平均に折りたたみます。これは人間の視覚が明るさを知覚するために使用するのと同じ重みです。ぼかしはガウシアン畳み込みです: 各出力ピクセルは周囲のピクセルの加重平均になります。反転は各チャンネルを反転します: c' = 1からc。

このツールの各プリセットは、これらの操作の名前付きの組み合わせです。「鮮やか」はコントラストと彩度を上げて重ねます; 「B&W」はグレースケールを100%に設定します; 「セピア」はセピアを100%に設定し彩度を下げます; 「暖かい」はセピアの色合いと穏やかな彩度を追加します; 「冷たい」は色相を青に回転させます; 「ビンテージ」はコントラストと彩度を下げ、わずかに暖めます; 「ドラマチック」はコントラストと彩度を強く押し上げます; 「フェード」はコントラストを和らげ、わずかに明るくします。裏側では、各プリセットは異なるCSSフィルター文字列を書くだけです。任意のプリセットから始めて、個々のスライダーを調整して、希望する正確な見た目を見つけることができます。

ここでのすべてのフィルターは、ブラウザの標準化されたCSSフィルター関数 (W3C Filter Effects Module Level 1) を通じて適用され、2016-2019年以降のすべての現代のブラウザでGPUを介して実装されています。スライダーを動かすとプレビューがリアルタイムで更新されます。これは、操作がCPUではなくグラフィックカードで計算されるからです。ダウンロード手順は、フィルター結果を元の画像寸法で新しいPNG、JPEG、またはWebPに焼き付けるので、エクスポートされたファイルはすでに見た目が適用されています; 別のレンダリング手順は必要ありません。

このツールがフードの下でどう動作するか

フィルターエンジンは、ブラウザのCanvas APIとCSSフィルター関数の組み合わせです。画像をドロップすると、ブラウザの組み込みデコーダーがファイル (JPEG、PNG、WebP、GIF、BMP、AVIF、またはSVG) をメモリ内のHTMLImageElement上の生のピクセルに変換します。ピクセルは要素に描画されます。フィルターを適用するために、ツールはctx.filter = "brightness(150%) contrast(110%) saturate(120%) sepia(20%) ..."を設定し、ソース画像を再描画します; ブラウザはGPUでフィルターチェーンを適用し、canvasは結果を表示します。

プリセットは、スクリプトに保存された事前定義のフィルター文字列です。「B&W」はgrayscale(100%) contrast(105%)です。「ビンテージ」はsepia(35%) saturate(75%) contrast(95%) brightness(102%)かもしれません。プリセットを選択すると、これらの文字列の1つがcanvasフィルターに書き込まれます; 個々のスライダーはそれに合わせて更新されるので、そこから微調整できます。「比較するために保持」は一時的にctx.filter = "none"を設定し、元の画像を再描画し、離すと選択したフィルターを復元します。

ダウンロード手順は、元の寸法 (画面上のプレビューサイズではない) で現在のフィルターが適用された新しいcanvasにソース画像を再描画し、canvas.toBlob()が結果を新しいPNG、JPEG、またはWebPとしてエクスポートします。出力はピクセルデータにフィルター効果が焼き付けられているので、受信者はツールの状態を必要とせずに同じ見た目を見ます。この間、何もタブを離れません; フィルタリング自体のためにライブラリはロードされません。

写真フィルターの簡単な歴史

画像フィルターの仕組み

画像フィルターは、写真のピクセル値を変更してその外観を変えます。明るさは全体的な明るさを調整し、コントラストは明るい部分と暗い部分の差を制御し、彩度は色の強度を決定します。色相回転はすべての色をカラーホイール上で移動し、セピアとグレースケールは画像をクラシックな色調に変換します。ぼかしはガウシアンスムージングを適用し、反転はすべての色を反転します。

このツールは、リアルタイムパフォーマンスのためにGPUアクセラレーションされたブラウザのネイティブCanvas CSSフィルターエンジンを使用します。すべての処理はローカルです · 画像がサーバーに送信されることはありません。

一般的な用途

実世界のフィルターワークフロー

よくある落とし穴とその意味

プライバシー: 画像はあなたのデバイスを離れません

クラウドベースの写真フィルターサービス (Pixlr、Fotor、BeFunky、オンライン「Instagramフィルター」サイト) はすべて、写真をオペレーターのサーバーにアップロードし、そのハードウェアでフィルターを適用し、フィルタリングされた画像をダウンロードとして返します。写真は、フィルタリング後でもセンシティブなメタデータを日常的に埋め込みます: 写真が撮られた場所のGPS座標、カメラとデバイスの情報、キャプチャ日時、そして写真の内容自体、これにはしばしば顔、場所、内部インターフェースのスクリーンショット、またはその他の識別可能な素材が含まれます。ほとんどのオペレーターは、1〜2時間以内にアップロードを削除し、転送中に暗号化することを約束するプライバシーポリシーを公開しており、大手はISO/IEC 27001認証を保持しています。彼らはそれらのポリシーを尊重する強力な商業的理由があります。しかし「1時間以内に削除」は「決して見られない」ではありません。その1時間の間、画像の内容はオペレーターのインフラストラクチャに存在し、適切な権限を持つ任意のプロセスまたは人物がアクセス可能であり、オペレーターの保持ポリシーに従ってログとバックアップに見えます。

このフィルターツールは何もアップロードしません。パイプライン全体 (ファイルピック、ブラウザの組み込みデコーダーによるデコード、GPUによるCanvasフィルター、ブラウザのエンコーダーによるオプションのダウンロード) は、JavaScriptと標準化されたCSS Filter Effects APIを使用してブラウザタブ内で実行されます。アップロードなし、画像データを運ぶネットワークリクエストなし、ログエントリなし。フィルタリング前にネットワークタブにブラウザの開発者ツールを開いて確認できます: 画像コンテンツでリクエストは発火しません。唯一のネットワークトラフィックは初期ページロード自体です; フィルタリング操作のためにライブラリはダウンロードされません。ページがロードされた後にブラウザを飛行機モードに切り替えると、フィルターツールはローカル画像で動作し続けます。

別のツールが正しい選択である場合

よくある質問

フィルターは画像品質を低下させますか?

フィルターはフル解像度で適用されるため、品質の低下はありません。ダウンロード時、画像はフィルターが組み込まれた元の寸法でエクスポートされます。JPEGエクスポートは優れた忠実度のために92%の品質を使用します。

複数のフィルターを組み合わせることができますか?

はい。8つの調整スライダーは同時に動作します。また、プリセットから始めて、必要な正確なルックを得るために特定のスライダーを微調整することもできます。

「押し続けて比較」は何をしますか?

「押し続けて比較」ボタンを押している間、プレビューは一時的にフィルターなしの元の画像を表示します。離すとフィルター済みのバージョンに戻ります。前後の素早い比較に便利です。

画像はどこかに送信されますか?

いいえ。すべてのフィルター処理はブラウザに組み込まれたCanvas APIを使用します。画像はデバイスに完全に残り、サーバーに送信されることはありません。

その他のよくある質問

なぜ私の画像は極端な設定でポスタライズされて見えるのですか?

数学にヘッドルームが不足するからです。各カラーチャンネルは256の可能な値 (8ビットRGBで0から255) のみを持ちます。明るさやコントラストを元の範囲をはるかに超えて押し上げると、優雅なグラデーションを保つ代わりに0または255でクリップされます。結果はバンディング (滑らかな遷移であるべきものの目に見えるステップ) とポスタライゼーション (単一の色に折りたたまれた領域) です。解決策: 最も極端なスライダーを引き戻すか、より高いビット深度のソースから始めてください (RAWまたは16ビットTIFF、ビット深度を保持するデスクトップツールで編集) 。

カスタムプリセットを保存できますか?

このツールのUIで直接ではありません。しかし、スライダーの値自体があなたの「プリセット」です: 8つの数字 (明るさ、コントラスト、彩度、セピア、グレースケール、色相回転、ぼかし、反転) を記録すれば、将来のどの写真でも数秒で見た目を再現できます。バッチ全体で同じ見た目が欲しいマルチ写真ワークフローの場合、この手動アプローチは約5-10枚の写真までスケールします; それを超える場合、Photoshop、Lightroom、Capture One、または保存されたプリセットパックを備えたVSCOが正しいツールです。

フィルターの順序は重要ですか?

ほとんどのフィルターでは、いいえ: 明るさからコントラストはコントラストから明るさと同じ出力を生成します。明るさ、コントラスト、彩度、セピア、グレースケール、色相回転、反転のCSSフィルター関数はすべて互いに交換可能です。ぼかしは例外です: 色変更の前に適用されたぼかしは元のエッジに影響を与えます; 後に適用されたぼかしは色シフトされたエッジに影響を与え、2つの出力は視覚的に異なります。実際にはこのツールはすべてのフィルターを固定された順序で適用するため、異なる順序を使用する別のツールの正確な効果を再現しようとしている場合にのみ問題になります。

このツールはオフラインで動作しますか?

はい。CSSフィルターエンジン、Canvas API、およびJPEG、PNG、WebP、GIF、BMP、AVIFのデコーダー/エンコーダーはすべて、すべての現代のブラウザに組み込まれています。フィルタリングのために外部ライブラリはダウンロードされません。ページ自体が一度ロードされると、ページがブラウザキャッシュに残っている限り、後続の訪問は完全にオフラインで動作します。最初の訪問後に飛行機モードを有効にし、ローカル画像にフィルターを適用することで確認します。

EXIFメタデータはダウンロードされた画像で保持されますか?

いいえ。Canvasベースの再エンコードは、EXIF (カメラ、レンズ、露出、GPS、キャプチャ日) 、XMP、IPTCメタデータブロック、および埋め込まれたICCカラープロファイルを破棄します。ダウンロードされた画像はピクセルデータのみを運びます。ソーシャルメディア共有の場合、これは通常望ましいです (GPS座標とデバイスのシリアル番号は漏れません) 。メタデータが重要なアーカイブまたは写真ワークフローの場合、エクスポート全体でメタデータを保持するPhotoshopやLightroomなどのデスクトップエディタを使用してください。

デスクトップまたはコマンドラインの同等品はありますか?

いくつか。バッチ自動化の場合、ImageMagickの-brightness-contrast-modulateおよび関連演算子は、任意のシェルから同じ変換を適用します。Node.jsのSharpには完全な調整APIがあります。PythonのPillowはImageEnhance.BrightnessImageEnhance.ContrastImageEnhance.Colorおよび類似のクラスを提供します。インタラクティブなデスクトップ作業のためには、Photoshop、Lightroom (プロフェッショナル標準) 、Affinity Photo、GIMP、およびPixelmator Proがすべて同じ操作と選択的編集のためのレイヤーマスクを提供します。

関連ツール