ホームページ ウェブフロントエンド jsチュートリアル JS+Canvas で画像プレビューを圧縮してアップロード

JS+Canvas で画像プレビューを圧縮してアップロード

May 26, 2018 am 10:03 AM
javascript 圧縮

今回はJS+Canvasで作成した画像プレビュー圧縮とアップロードについてご紹介します。 JS+Canvasで画像プレビュー圧縮とアップロードを行う際の注意点は何ですか?見てください。

まずレンダリングを見てみましょう。素晴らしいです

ステップ 1: ユーザーはアップロードする画像を選択します

<input type="file" accept="image/*" type="file"" name="imageFile" onchange="upload()">
ログイン後にコピー

画像を選択した後、アップロード関数をトリガーする必要があります。画像リソースを圧縮し、サーバーにアップロードする必要がある場合は、ajax またはその他の方法を使用してアップロードすることもできます。

ステップ 2: 画像リソースの圧縮プレビューを取得してアップロードします

function upload() { 
  let file = document.querySelector('input[type=file]').files[0] // 获取选择的文件,这里是图片类型 
  let reader = new FileReader() 
    reader.readAsDataURL(file) //读取文件并将文件以URL的形式保存在resulr属性中 base64格式 
    reader.onload = function(e) { // 文件读取完成时触发  
      let result = e.target.result // base64格式图片地址  
      var image = new Image() image.src = result // 设置image的地址为base64的地址  
      image.onload = function(){  
        var canvas = document.querySelector("#canvas");  
        var context = canvas.getContext("2d");  
        canvas.width = image.width; // 设置canvas的画布宽度为图片宽度  
        canvas.height = image.height;  
        context.drawImage(image, 0, 0, image.width, image.height) // 在canvas上绘制图片  
        let dataUrl = canvas.toDataURL('image/jpeg', 0.92) // 0.92为压缩比,可根据需要设置,设置过小会影响图片质量  
                                  // dataUrl 为压缩后的图片资源,可将其上传到服务器  
      }  
    } 
 }
ログイン後にコピー

次に、画像が正常に圧縮されているかどうかを比較してみましょう:

元の画像サイズ:

圧縮率は 0.92 に設定されています:

圧縮率の設定は0.52です

ズーム率を0.92に設定すると、元の画像より画像が大きくなるのは一見すると不思議だと思いませんか?実際、base64 でエンコードされた画像は、特定の理由により元の画像よりも大きくなります。base64 のエンコード原理を確認できます。画像の圧縮に成功したようです。

注: キャンバスは IE9 より下ではサポートされていません。応答速度に影響するため、大きな画像には Base64 を使用しないでください。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

vue2.0+boostrapプロジェクトをビルドする方法

Angular5がRxJSを5.5.3にアップグレードする際のエラー問題を解決する方法

以上がJS+Canvas で画像プレビューを圧縮してアップロードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

7-zipの最大圧縮率設定、7zipを最小まで圧縮する方法 7-zipの最大圧縮率設定、7zipを最小まで圧縮する方法 Jun 18, 2024 pm 06:12 PM

ダウンロード Web サイトからダウンロードした圧縮パッケージは、解凍後に元の圧縮パッケージよりも大きくなり、クラウド ディスクにアップロードすると、小さいものでは数十 MB の差が生じることがわかりました。有料のスペースは、ファイルが小さい場合は問題ありませんが、ファイルが多数ある場合、ストレージのコストが大幅に増加します。私はそれを具体的に勉強したので、必要に応じてそこから学ぶことができます。圧縮レベル: 9-極度の圧縮 辞書サイズ: 256 または 384、辞書が圧縮されるほど遅くなります。256MB より前では圧縮率に大きな違いがあり、384MB 以降では圧縮率に違いはありません。最大 273 パラメータ: f=BCJ2、テストおよび追加パラメータの圧縮率が高くなります

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

win10 画面録画ファイルサイズを減らすためのヒント win10 画面録画ファイルサイズを減らすためのヒント Jan 04, 2024 pm 12:05 PM

多くの友人が事務作業で画面を録画したり、ファイルを転送したりする必要がありますが、ファイルが大きすぎる問題が原因で多くのトラブルが発生することがあります。以下にファイルが大きすぎる問題の解決策を示します。 win10 画面録画ファイルが大きすぎる場合の対処方法: 1. ソフトウェア Format Factory をダウンロードしてファイルを圧縮します。ダウンロードアドレス >> 2. メインページに入り、「Video-MP4」オプションをクリックします。 3. 変換形式ページで「ファイルの追加」をクリックし、圧縮するMP4ファイルを選択します。 4. ページ上の「出力構成」をクリックして、出力品質に従ってファイルを圧縮します。 5. ドロップダウン構成リストから「低品質とサイズ」を選択し、「OK」をクリックします。 6. 「OK」をクリックしてビデオファイルのインポートを完了します。 7. 「開始」をクリックして変換を開始します。 8. 完了したら、次のことができます。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

フォルダーを圧縮してwpsで送信する方法 フォルダーを圧縮してwpsで送信する方法 Mar 20, 2024 pm 12:58 PM

オフィス ワーカーは仕事で wps ソフトウェアを頻繁に使用します。場合によっては、1 日に複数のファイルを入力し、リーダーまたは指定された場所に送信します。では、wps ソフトウェアはどのようにしてフォルダーを圧縮し、送信用にパッケージ化するのでしょうか? 以下のエディターが説明します。 . この操作ステップ。まず、送信するファイルとフォルダーを同じフォルダーに整理します。ファイルが多数ある場合は、送信時に識別しやすいように、各ファイルに名前を付けることをお勧めします。 2 番目のステップとして、今度はこの大きなフォルダーをクリックして右クリックします。 「アーカイブに追加」を選択します。ステップ 3: この時点で、ソフトウェアはファイルのパッケージ化を自動的に支援します。「XX.zip に圧縮」を選択します。この zip はパッケージ化形式であり、「今すぐ圧縮」をクリックします。​

winrar 64 ビット - winrar を解凍するにはどうすればよいですか? winrar 64 ビット - winrar を解凍するにはどうすればよいですか? Mar 18, 2024 pm 12:55 PM

WinRAR は、豊富な機能と使いやすいインターフェイスを提供する強力な圧縮ファイル管理ツールです。 WinRAR 64 ビット バージョンは、64 ビット オペレーティング システム用に特別に最適化されており、システム リソースとパフォーマンスをより効率的に利用できます。次に、編集者が winrar 64 ビットの紹介と winrar の解凍方法を説明します。 1. winrar 64 ビット ソフトウェアとは何ですか? WinRAR は、強力な圧縮パッケージ マネージャーです。このソフトウェアは、データのバックアップ、電子メールの添付ファイルのサイズの削減、インターネットからダウンロードした RAR、ZIP およびその他のファイルの解凍、RAR および ZIP 形式の新しいファイルの作成に使用できます。 WINRARの最新バージョンはWiです

See all articles