今回は、H5 を使用してカメラを呼び出して写真を撮ったり、写真を圧縮したりする方法を説明します。 H5 がカメラを呼び出して写真を撮影し、画像を圧縮するための 注意事項 は何ですか? ここで実際のケースを見てみましょう。
し、サーバーが認識結果。 フロントエンドの主な機能ポイントは次のとおりです:
H5でカメラを呼び出す方法
写真を圧縮する方法
写真をbase64に変換する
H5でカメラ/アルバムを呼び出す
カメラは入力ファイルの [カメラ] 属性を使用します:
<input type="file" capture=camera accept="image/*">//相机 <input type="file" accept="image/*">//相册
このメソッドの互換性にはまだ問題があります。iPhone ではカメラを正常に開くことができますが、Android スマートフォンをクリックすると、次のようなオプションが混在します。カメラ、ギャラリー、ファイルマネージャーなどとして。インターネットでいろいろ調べましたが、良い解決策が見つからず、書き続けるしかありません。 。 。
画像圧縮
画像圧縮には FileReader と
FileReader オブジェクトを使用すると、Web アプリケーションは、File または Blob オブジェクトを使用して、読み取るファイルまたはデータを指定し、コンピューターに保存されているファイルの内容を非同期的に読み取ることができます。
HTML 要素です。 画像圧縮では、画像の解像度と品質を圧縮する必要があります。解像度圧縮の場合、画像の最大側を 800 に設定し、もう一方の側は画像の元の比率に従って拡大縮小することもできます。画像の拡大縮小率。
rreee次に、圧縮画像の品質ですが、ここでの圧縮率は 80% に設定されており、設定が小さすぎると画像が歪みます。
var MAX_WH=800; var image=new Image(); image.onload=function () { if(image.height > MAX_WH) { // 宽度等比例缩放 *= image.width *= MAX_WH/ image.height; image.height = MAX_WH; } if(image.width > MAX_WH) { // 宽度等比例缩放 *= image.height *= MAX_WH/ image.width; image.width = MAX_WH; } } image.src=dataURL;//dataURL通过FileReader获取
それからサーバーにアップロードし、サーバーの結果を表示します。 。 。 iOS スマートフォンで写真を撮影すると、圧縮された後に写真が不可解に回転します。問題の解決を続けます。
IOS画像回転の解決策
まずexif.jsを引用し、EXIF.getDataとEXIF.getTagを通じて写真の方向情報を取得します。
var quality=80; var cvs = document.createElement('canvas'); cvs.width = image.width; cvs.heigh = image.height; var context=cvs.getContext("2d"); context.drawImage(image, 0, 0,image.width, image.height); dataURL = cvs.toDataURL('image/jpeg', quality/100);
画像の方向情報を取得したら、取得した値に基づいて対応する回転操作を実行します。
//file通过input标签获取 EXIF.getData(file,function(){ orientation=EXIF.getTag(file,'Orientation'); });
これらの事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
関連記事:
H5 モバイル QR コード スキャンの実装方法SVG カラフルなリングのカウントダウンを開始する方法 HTML5 がクロスドメイン通信を実行する方法以上がH5 でカメラを呼び出して写真を撮ったり、写真を圧縮したりする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。