ブラウザーで画像をダウンサイズ (ダウンサンプル) して高品質にします
Reduxrespot:
ブラウザー内 画像を縮小する場合html5 Canvas 要素を使用すると、画質が非常に低いことがわかりました。いくつかの調査の結果、
ベスト プラクティス
シングルステップ ダウンサンプリング
大きな画像を小さな画像にダウンサイズする必要がある状況に推奨image シングルステップのダウンサンプリングを使用します。手順は次のとおりです。
- drawImage() メソッドを使用して、元の画像を縮小サイズのキャンバスに描画します。
- getImageData()を使用して縮小画像のデータを取得します。
- putImageData() を使用して、縮小されたデータを新しいキャンバスに描画します。
次のコード例で実現します:
const originalImage = new Image(); originalImage.onload = () => { const originalCanvas = document.createElement('canvas'); originalCanvas.width = desiredWidth; originalCanvas.height = desiredHeight; const originalCtx = originalCanvas.getContext('2d'); originalCtx.drawImage(originalImage, 0, 0, desiredWidth, desiredHeight); const scaledData = originalCtx.getImageData(0, 0, desiredWidth, desiredHeight); const scaledCanvas = document.createElement('canvas'); scaledCanvas.width = desiredWidth; scaledCanvas.height = desiredHeight; const scaledCtx = scaledCanvas.getContext('2d'); scaledCtx.putImageData(scaledData, 0, 0); };
マルチステップ ダウンサンプリング
シングルステップ ダウンサンプリングでは品質が十分でない場合、マルチステップのダウンサンプリングを使用できます。これは、より小さい比率を使用して単一ステップのダウンサンプリングを繰り返し実行することによって実現されます。
次に、2 ステップ ダウンサンプリングのコード例を示します。
const originalImage = new Image(); originalImage.onload = () => { // 第一步:缩小 50% const firstCanvas = document.createElement('canvas'); firstCanvas.width = originalImage.width / 2; firstCanvas.height = originalImage.height / 2; const firstCtx = firstCanvas.getContext('2d'); firstCtx.drawImage(originalImage, 0, 0, firstCanvas.width, firstCanvas.height); // 第二步:缩小 50% const secondCanvas = document.createElement('canvas'); secondCanvas.width = firstCanvas.width / 2; secondCanvas.height = firstCanvas.height / 2; const secondCtx = secondCanvas.getContext('2d'); secondCtx.drawImage(firstCanvas, 0, 0, secondCanvas.width, secondCanvas.height); const finalImage = new Image(); finalImage.src = secondCanvas.toDataURL(); };
ぼやけの問題
複数ステップのダウンサンプリングにより画像がぼやける可能性があります。この問題を解決するには、次の手法を使用できます。
- 画像のシャープ化: 畳み込みフィルターまたはその他のシャープ化手法を使用して、画像のエッジを強調できます。
- 高品質な補間アルゴリズムを使用します: たとえば、バイリニアまたはバイキュービック補間は、最近傍補間よりも優れた品質を提供できます。
- ダウンサンプリングをより小さいステップで実行します: たとえば、2 ステップのダウンサンプリングでは、各ステップでサイズを 50 ずつ縮小するのではなく、3 ステップのダウンサンプリングを実行して、各ステップでサイズを 33% 縮小します。 % 。
以上がHTML5 Canvas を使用してブラウザで高品質の画像のダウンスケーリングを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

先日、この質問がありました。私の最初の考えは、奇妙な質問です!特異性はセレクターに関するものであり、アットレールはセレクターではないので、...無関係ですか?

はい、あなたはできます、そしてそれは本当にどの順序で重要ではありません。 CSSプリプロセッサは必要ありません。通常のCSSで動作します。

CSSやJavaScript(および画像とフォントなど)などのアセットにファーアウトキャッシュヘッダーを確実に設定する必要があります。それはブラウザを伝えます

多くの開発者は、CSSコードベースを維持する方法について書いていますが、そのコードベースの品質をどのように測定するかについて多くの人が書いていません。確かに、私たちは持っています

短い任意のテキストを受け入れるために必要なフォームを持っていたことがありますか?名前などのように。それはまさにそのためのものです。たくさんあります

私は、フロント会議のためにスイスのチューリッヒに向かうことにとても興奮しています(その名前とURLが大好きです!)。私はこれまでスイスに行ったことがないので、興奮しています

ソフトウェア開発における私のお気に入りの開発の1つは、サーバーレスの出現です。詳細に行き詰まる傾向がある開発者として

この投稿では、私が構築して展開して展開してネットライフを使用して、着信データの動的ルートを作成する方法を示すeコマースストアのデモを使用します。それはかなりです


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版
ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
