ホームページ ウェブフロントエンド jsチュートリアル JsでCanvasを使って画像を圧縮する方法を説明します

JsでCanvasを使って画像を圧縮する方法を説明します

Sep 15, 2017 am 09:24 AM
canvas javascript 圧縮

以下のエディターは、JSを使用してCanvasを使用した画像圧縮機能を実装する方法に関する記事をお届けします。編集者はこれがとても良いと思ったので、参考として共有します。編集者をフォローして見てみましょう

私が最近取り組んだAPPプロジェクトでは、携帯電話で写真を撮ってアップロードする必要があります。携帯電話で撮影した写真は通常比較的大きいため、アップロードは非常に遅くなります。このため、アップロード機能を最適化するために画像を圧縮する必要があります。以下は具体的な実装です:


/* 
 * 图片压缩
 * img    原始图片
 * width   压缩后的宽度
 * height  压缩后的高度
 * ratio   压缩比率 
 */
 function compress(img, width, height, ratio) {        
   var canvas, ctx, img64;
        
   canvas = document.createElement('canvas');        
   canvas.width = width;
   canvas.height = height;
        
   ctx = canvas.getContext("2d");        
   ctx.drawImage(img, 0, 0, width, height);
        
   img64 = canvas.toDataURL("image/jpeg", ratio);
        
   return img64;
 }
ログイン後にコピー

上記は、base64 形式で画像データを返す画像圧縮関数です。 圧縮率の値 (0 ~ 1) が大きいほど、画質は高くなります。画像のbase64はjpegよりもはるかに長いため、画像をpng形式に変換しないことをお勧めします。以下は実際の呼び出しです:


var image = new Image();
image.src = "/img/test.jpg";
      
image.onload = function(){
  var img64 = compress(image, 500, 400, 0.7);
  document.getElementById("test").src = img64;
}
ログイン後にコピー

注: 圧縮メソッドの呼び出しとイメージ src 割り当ては、イメージの onload メソッドに配置する必要があります。イメージをロードした後にのみ、イメージを圧縮して Base64 に変換して割り当てられるためです。 onloadメソッドの外に置くと、圧縮コードが不正になったり、真っ黒な画像が生成される可能性があります。

以上が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)

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

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

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

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

キャンバス フレームワークを学び、一般的に使用されるキャンバス フレームワークについて詳しく説明します キャンバス フレームワークを学び、一般的に使用されるキャンバス フレームワークについて詳しく説明します Jan 17, 2024 am 11:03 AM

Canvas フレームワークを探索する: 一般的に使用される Canvas フレームワークを理解するには、特定のコード例が必要です。 はじめに: Canvas は HTML5 で提供される描画 API であり、これを通じて豊富なグラフィックスやアニメーション効果を実現できます。描画の効率と利便性を向上させるために、多くの開発者がさまざまな Canvas フレームワークを開発しました。この記事では、一般的に使用される Canvas フレームワークをいくつか紹介し、読者がこれらのフレームワークの使用方法をより深く理解できるように、具体的なコード例を示します。 1.EaselJSフレームワークEa

フォルダーを圧縮して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です

Centos 7 の圧縮および解凍コマンドの概要 Centos 7 の圧縮および解凍コマンドの概要 Dec 31, 2023 pm 09:02 PM

1.Zip ファイル圧縮の構文: zip に圧縮ファイル名と圧縮するファイル名を加えます。 [root@localhost~]#ziptest.ziptest.txtadding:test.txt(deflated100%)[root@localhost~]#圧縮されたことを示すプログレスバーの後に表示されるパーセンテージ数値。あなたの名前のファイル パッケージがあるかどうかを確認します。 [root@localhost~]#ll合計使用量 820004-rw-------.1rootroot1587 3 月 2216:58anaconda-ks.cfg-rw-r--r--.1ro

ゲーム開発におけるキャンバスの強力な役割と応用を探る ゲーム開発におけるキャンバスの強力な役割と応用を探る Jan 17, 2024 am 11:00 AM

ゲーム開発におけるキャンバスの力と応用を理解する 概要: インターネット技術の急速な発展に伴い、Web ゲームはプレイヤーの間でますます人気が高まっています。 Web ゲーム開発の重要な部分として、キャンバス テクノロジーがゲーム開発に徐々に登場し、その強力なパワーと応用性を示しています。この記事では、ゲーム開発におけるキャンバスの可能性を紹介し、具体的なコード例を通じてその応用例を示します。 1. Canvas テクノロジの概要 Canvas は HTML5 の新しい要素で、これにより次のことが可能になります。

See all articles