1
나는 몇 시간 동안이 문제로 고생했습니다. 에서 이미지를 크기를 조정하고 서버에 업로드하고 싶습니다. 여기 내 시도입니다.이미지를 입력에서 업로드 크기로 조정
내 입력 요소 :
<Input type="file" name="file" onChange={this.handleLoadAvatar} />
내 handleLoadAvatar
기능 :
handleLoadAvatar(e) {
var file = e.target.files[0];
var img = document.createElement("img");
var reader = new FileReader();
reader.onload = (e) => {
img.src = e.target.result;
}
reader.readAsDataURL(file);
var canvas = document.createElement('canvas');
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var MAX_WIDTH = 300;
var MAX_HEIGHT = 300;
var width = img.width; // GET STUCK HERE
var height = img.height;
if (width > height) {
if (width > MAX_WIDTH) {
height *= MAX_WIDTH/width;
width = MAX_WIDTH;
}
} else {
if (height > MAX_HEIGHT) {
width *= MAX_HEIGHT/height;
height = MAX_HEIGHT;
}
}
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, width, height);
var dataurl = canvas.toDataURL("image/png");
this.setState({previewSrc: dataurl});
}
내 프로젝트에 대한 ReactJS을 사용하고 있습니다. 나는 이미지 너비를 얻을 수없는 위의 주석이있는 줄에 갇혀있다. 내가 HTML5 Pre-resize images before uploading 에서이 솔루션을 시도했지만이 나를 위해 작동하지 않는 것. 아무도 내 코드의 문제점과 해결 방법을 지적 할 수 있습니까? 무리 감사!
는이를 확인 할 수 https://stackoverflow.com/questions/23945494/use-html5-to-resize 문제를 해결하기 위해 업로드 전 이미지 - 이미지 업로드 – vickisys