首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像裁剪和大小调整

问图像裁剪和大小调整
EN

Stack Overflow用户
提问于 2018-12-17 08:13:14
回答 1查看 4.6K关注 0票数 1

在我的角度应用程序中,我做了图像上传和预览,

Html:

代码语言:javascript
复制
<input type='file' (change)="readUrl($event)">
<img [src]="url">

Ts:

代码语言:javascript
复制
  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个人资料图片上传。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-17 09:05:01

我用小提琴更新了你的绘图功能:

代码语言:javascript
复制
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/

如果这是你想要的,请告诉我

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53811160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档