FileReader
+を使用Canvas
してローカル ファイルを読み取り、サーバーに送信せずに切り抜くことができます。
これを行う方法を示すデモがあります。
<form><input type="file" id=f></form>
<canvas id=c width="600" height="600"></canvas>
<script>
var f = document.getElementById('f');
var canvas = document.getElementById('c');
var context = canvas.getContext('2d');
f.onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(evt) {
var img = new Image();
img.onload = function() {
context.drawImage(this, 0, 0, 100, 100, 0, 0, 100, 100);
var pngUrl = canvas.toDataURL();
//alert(pngUrl); // send this url to server to save the image
}
img.src = evt.target.result;
}
reader.readAsDataURL(file);
}
</script>
このデモでは、左上の 100x100 ピクセルのトリミングをハードコーディングしただけなので、ユーザーがトリミング領域を選択できるようにするために、jquery jcrop プラグインを使用する必要があります。
jcrops onSelectイベントを使用して、トリミング領域の原点 + 幅 + 高さを取得し、それらの値をcontext.drawImage
うまくいけば、あなたは残りを処理することができます、頑張ってください