在我的角度应用程序中,我做了图像上传和预览,
Html:
<input type='file' (change)="readUrl($event)">
<img [src]="url">Ts:
readUrl(event:any) {
if (event.target.files && event.target.files[0]) {
var reader = new FileReader();
reader.readAsDataURL(event.target.files[0]);
reader.onload = (event: ProgressEvent) => {
this.url = (<FileReader>event.target).result;
}
}
}从现在起一切都很好。
但是在这里上传的图像的大小非常大,因此我需要实现自动裁剪和自动调整预览中上传的图像的大小,这样用户就可以清晰地看到图像。
请帮助我实现自动裁剪和调整大小的结果,而无需使用jquery或任何其他库。
Stackblitz: https://stackblitz.com/edit/angular-a7ytbh
编辑:
用javascript方式尝试过https://jsfiddle.net/t3cgw65L/1/,但这里只需要自动裁剪功能。如果我们上传一张图片,那么只有某些部分显示..。如果我们上传我们的照片,它需要显示我们的脸。我需要上传个人资料图片与自动裁剪和调整大小,如skype个人资料图片上传。
发布于 2018-12-17 09:05:01
我用小提琴更新了你的绘图功能:
function drawimg(idata) {
var img = new Image();
img.onload = function(){
canvas.width = 300; // defalt fixed size
canvas.height = this.height*canvas.width/this.width; // uploaded image aspect ratio
const ctx = canvas.getContext('2d');
ctx.drawImage(img, 0,0,canvas.width,canvas.height);
};
img.src = idata;
}https://jsfiddle.net/t3cgw65L/2/
如果这是你想要的,请告诉我
https://stackoverflow.com/questions/53811160
复制相似问题