javascript - 图像裁剪和调整大小

标签 javascript html angular typescript canvas

在我的 Angular 应用程序中,我使用

进行了图像上传和预览

HTML:

<input type='file' (change)="readUrl($event)">
<img [src]="url">

时间:

  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 或任何其他库的情况下实现自动裁剪和调整的结果..

堆栈 Blitz : https://stackblitz.com/edit/angular-a7ytbh

编辑:

尝试使用 javascript 方式 https://jsfiddle.net/t3cgw65L/1/但这里只需要自动裁剪功能。如果我们上传图片,则只显示特定部分。如果我们上传图片,它需要显示脸部。我需要上传自动裁剪和调整大小的个人资料图片像 Skype 个人资料图片上传..

最佳答案

我在 jsfiddle 中更新了你的绘图函数:

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/

让我知道这是不是你想要的

关于javascript - 图像裁剪和调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53811160/

相关文章:

html - 密码必须与 Angular 中的响应式(Reactive)表单匹配

javascript - 重用功能删除项目

javascript - 在选择菜单中选择的值未发送到服务器

node.js - npm install -g @angular/cli 在 Windows 7 中不起作用并挂起

javascript - 有没有办法纯粹通过 CSS 来做到这一点?

javascript - php中cookie添加10分钟过期时间

angular - Angular 5中如何设计常用方法

javascript - jquery 1.10.2 与 Firefox 29.0.1 冲突

javascript - NextJS 路由器使用嵌套页面不设置事件菜单

javascript - 在 div 中过滤 <p> 并包裹所有