JavaScript コードコンテンツをクリップボードにコピーします
- var result = document.getElementById("/* エラーメッセージ表示ブロック */"); 🎜>
-
var input = document.getElementById("/* ファイルタグをアップロードします */"); >
-
- if(typeof FileReader === '未定義'){
result.innerHTML =
- "
申し訳ありませんが、お使いのブラウザは FileReader をサポートしていません
";
input.setAttribute(
'無効'-
,'無効');
}else
{ -
input.addEventListener('change'
,readFile,-
false);
}
関数-
readFile(){
-
var ファイル =
this-
.files[0];
if(!/image/w /.test(file.type)){
alert(-
"ファイルの種類が画像であることを確認してください");
return-
false;
} -
var Reader = new
FileReader();
-
Reader.readAsDataURL(ファイル)
-
Reader.onload = 関数(e){
// this.result コンパイルされた画像エンコーディングは、src -
で直接表示できます。
-
}
}
-
2. キャンバスでの画像処理
- JavaScript コード
コンテンツをクリップボードにコピーします
- var c=document.getElementById("/* Canvas タグ ID */"); >
-
var cxt=c.getContext("2d");
var-
img=new Image();
img.src=/* 取得した画像エンコードアドレス */
;
-
width = img.width;
-
var 高さ = img.height;
dic = 高さ / 幅;
-
c.width = 200; //画像圧縮の基準、ここでは 200px のデポジットに基づいて計算されます
- c.height = 200 * dic;
cxt.clearRect(0,0,200,200*dic); -
- var
finalURL = c.toDataURL();
// 取得された最終 URL は圧縮された画像エンコーディングであり、これを使用して画像タグをアップロードまたは直接生成できます -
-
ここで注意すべき点がいくつかあります:
1. ローカルでデバッグするとエラーが発生するため、サーバー側でデバッグする必要があります。
2. キャンバスのdrawImage()メソッドには画像のトリミング機能がありますが、画像の伸縮とトリミングを同時に記述すると、トリミングメソッドが先に実行されます。
3. AJAX を使用して画像エンコードをアップロードすると、エンコード内のプラス記号がスペースに変換され、バックグラウンドでのコンパイルが失敗します。
- 4. 画像領域の選択とアップロードの方法はまだ試用段階なので、後で私の経験を追加します。
以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。 原文: http://www.cnblogs.com/liaojh/p/5209433.html