アップロードしたファイルをキャンバス要素に受け取る入力フォームを作成しました。異なる画像が異なるサイズで表示されるため、アップロードされた画像はキャンバスのサイズに合わせて伸びます(400
* 350
)。キャンバス画像ソースの正確な中心を切り抜く
アップロードされた画像の中心をキャンバスに収まるように、アップロードした画像の中心を自分のキャンバスのサイズの比率に合わせる方法を教えてください。
<input type='file' id="fileUpload" />
<canvas id="up_canvas" width="400" height="350" style="border: 1px solid red;"></canvas>
<script>
//get input as canvas
function el(id){return document.getElementById(id);}
var canvas_one = el("up_canvas");
var context_one = canvas_one.getContext("2d");
function readImage() {
if (this.files && this.files[0]) {
var FR= new FileReader();
FR.onload = function(e) {
var img = new Image();
img.onload = function() {
context_one.drawImage(img, 0, 0, 400, 350);
};
img.src = e.target.result;
};
FR.readAsDataURL(this.files[0]);
}
}
el("fileUpload").addEventListener("change", readImage, false);
</script>