亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Angular使用 ng-img-max 調整瀏覽器中的圖片的示例代碼

2019-11-19 15:46:09
字體:
來源:轉載
供稿:網友

你想在Angular應用程序中進行圖片上傳,是否想在圖片上傳之前在前端限制上傳圖片的尺寸?ng2-img-max模塊正是你所要的! ng2-img-max模塊會使用web sorkers 進行圖片大小的計算,并駐留在主線程中。

我們來看看他的用途:

安裝

首先,使用npm 或 Yarn安裝模塊:

$ npm install ng2-img-max blueimp-canvas-to-blob --save# or Yarn :$ yarn add ng2-img-max blueimp-canvas-to-blob

blueimp-canvas-to-blob是一個polyfill,以便canvas.toBlob()可以在Safari和舊版本的Internet Explorer等瀏覽器上使用。

將polyfill腳本包含在項目中。 如果您使用Angular CLI,您可以將腳本添加到.angular-cli.json文件中:

//: .angular-cli.json..."scripts": [ "../node_modules/blueimp-canvas-to-blob/js/canvas-to-blob.min.js"],//...

將腳本添加到Angular CLI配置后,您將需要重新啟動本地服務。

現在我們將模塊導入應用模塊或功能模塊:

//: app.module.ts//...import { Ng2ImgMaxModule } from 'ng2-img-max';@NgModule({ declarations: [ AppComponent ], imports: [  //...  ng2ImgMaxModule ], providers: [], bootstrap: [ AppComponent ]})export class AppModule {}

最后,ng2-img-max服務可以導入并注入到這樣的組件中:

import { Component } from '@angular/core';import { Ng2ImgMaxService } from 'ng2-img-max';@Component({ ... })export class AppComponent { constructor(private ng2ImgMax: Ng2ImgMaxService ) {}}

使用

我們添加一個File文件輸入框到組件的模板中,像這樣:

<input type='file' (change)="onImageChange($event)" accept="image/*" />

在組件類中添加方法onImageChange, 它將會限制圖片的寬高為:400px,300px:

updateImage: Blob;constructor(private ng2ImgMax: Ng2ImgMaxService) {}onImageChange(event){ let image = event.target.files[0];  this.ng2ImgMax.resizeImage(image,400,300).subscribe(result=> {  this.uploadImage = result; }, error=> {  console.log('error:',error); })}

如果您有多個圖像需要一次性調整大小,請改用resize方法,并將圖片文件數組作為第一個參數傳入。

結果是Blob類型,但是如果需要,可以使用File構造函數將其轉換為正確的文件:

//: app.component.tsuploadedImage: File;constructor(private ng2ImgMax: Ng2ImgMaxService) {}onImageChange(event){ let image = event.target.files[0];  this.ng2ImgMax.resizeImage(image,400,300).subscribe(result=> {  this.uploadedImage = new File([result],result.name); }, error=> {  console.log('error',error); })}

您現在可以將文件上傳到您的后端。 不要忘記在后端做好驗證,因為這里的內容會阻止一些用戶將超大或非圖像文件直接上傳到后端。

只限制寬度或高度

假設您只想將高度限制為300px,并相應調整寬度,以保持寬高比相同。 只要設置任何一閥值到10000:

//...onImageChange(event) { let image = event.target.files[0]; this.ng2ImgMax.resizeImage(image,10000,300).subscribe(result=> {  this.uploadedImage = new File([result],result.name); }, error=> {  console.log('error:',error); });}

壓縮代替Resizing

您還可以使用compress或compressImage方法執行有損壓縮,而不是調整圖像大小。 只需傳遞最大值(兆字節)。 你顯然想要運行一些測試,看看你想要走多遠的幾個小時,同時保持圖像看起來很好。

在以下示例中,我們將生成的圖像限制為大約75Kb:

onImageChange(event) { let image = event.target.files[0]; this.ng2ImgMax.compressImage(image, 0.075).subscribe(  result => {   this.uploadedImage = new File([result], result.name);   this.getImagePreview(this.uploadedImage);  },  error => {   console.log('😢 Oh no!', error);  } );}

圖片預覽

您可能想要預覽要上傳到用戶的圖像。 您可以使用FileReader對象執行此操作。 您還需要使用Angular的DomSanitizer來使其信任使用FileReader對象創建的base64編碼數據URI:

現在,我們的組件內容是這樣的。組件中有趣的新方法是getImagePreview:

//: app.component.tsimport { Component } from '@angular/core';import { Ng2ImgMaxService } from 'ng2-img-max';import { DomSanitizer } from '@angular/platform-browser';@Component({ ... })export class AppComponent { uploadedImage: File; imagePreview: string; constructor(  private ng2ImgMax: Ng2ImgMaxService,  public sanitizer: DomSanitizer ) {} onImageChange(event) {  let image = event.target.files[0];  this.ng2ImgMax.resizeImage(image, 10000, 375).subscribe(   result => {    this.uploadedImage = new File([result], result.name);    this.getImagePreview(this.uploadedImage);   },   error => {    console.log('😢 Oh no!', error);   }  ); } getImagePreview(file: File) {  const reader: FileReader = new FileReader();  reader.readAsDataURL(file);  reader.onload = () => {   this.imagePreview = reader.result;  }; }}

在我們的模板中,我們可以使用sanitizer來顯示如圖像:

//: app.component.html<img  *ngIf="imagePreview"  [src]="sanitizer.bypassSecurityTrustUrl(imagePreview)">

這就是它的全部! 您還可以查看同一作者的ng2-img-tools包,以獲得更多的瀏覽器端圖像處理(如裁剪)。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲高清色综合| 国产日韩欧美自拍| 国产精品香蕉av| 日韩国产欧美区| 欧美俄罗斯性视频| 亚洲aa中文字幕| 81精品国产乱码久久久久久| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲精品免费av| 国产精品国产三级国产aⅴ浪潮| 亚洲一区二区免费| 国产精品久久久久久一区二区| 国产精品 欧美在线| 国产日韩在线免费| 国产一区二区日韩精品欧美精品| 91精品久久久久久久久不口人| 欧美激情精品久久久久久蜜臀| 伊人伊成久久人综合网站| 成人精品一区二区三区电影黑人| 色综合91久久精品中文字幕| 国模精品视频一区二区| 中文字幕av一区中文字幕天堂| 欧美日韩国产限制| 欧美午夜精品久久久久久久| 亚洲综合精品一区二区| 国产精品日日摸夜夜添夜夜av| 久久精品一本久久99精品| 成人免费视频网址| 亚洲图片欧美午夜| 在线观看日韩欧美| 久久天天躁夜夜躁狠狠躁2022| 欧美日韩国产一区二区| 精品露脸国产偷人在视频| 中文字幕精品网| 国产97人人超碰caoprom| 91国在线精品国内播放| 欧美在线播放视频| 7m第一福利500精品视频| 久久精品视频播放| 日韩最新av在线| 国产精品久久久精品| 精品久久中文字幕久久av| 欧美日本精品在线| 精品国产91久久久久久老师| 国产精品午夜视频| 最近2019好看的中文字幕免费| 日韩欧美综合在线视频| 伊人青青综合网站| 国产成人啪精品视频免费网| 国产精品亚洲自拍| 国产精品一区二区三| 亚洲精品日韩久久久| 在线观看久久久久久| 久久久亚洲精品视频| 激情懂色av一区av二区av| 亚洲国产高清高潮精品美女| 中文字幕日韩欧美在线视频| 国产精品久久久av久久久| 国产精品99久久久久久久久| 久久久精品2019中文字幕神马| 亚洲综合精品伊人久久| 精品国产一区二区三区四区在线观看| 91精品视频免费看| 91免费在线视频| 91精品久久久久| 91精品国产高清自在线| 久久精品99久久久久久久久| 亚洲97在线观看| 亚洲综合在线小说| 日韩欧美大尺度| 精品久久久久久久久久久久| 97在线免费视频| 国产精品va在线| 亚洲美女在线视频| 久久国产精品视频| 欧美亚洲成人xxx| 日韩av一区二区在线观看| 欧美大片免费观看在线观看网站推荐| 亚洲精品影视在线观看| 亚洲欧美另类在线观看| 久久精品中文字幕免费mv| 日韩在线观看免费| 久久久久北条麻妃免费看| 国产成人jvid在线播放| 91性高湖久久久久久久久_久久99| 国产精品日日摸夜夜添夜夜av| 日本不卡视频在线播放| 97精品一区二区三区| 成人h猎奇视频网站| 欧美成人激情视频免费观看| 精品国产区一区二区三区在线观看| 久久精品亚洲一区| 欧美华人在线视频| 91精品视频在线免费观看| 欧美老少配视频| 国产日韩精品入口| 久久久亚洲精品视频| 欧美巨猛xxxx猛交黑人97人| 色偷偷亚洲男人天堂| 久久久久久久久亚洲| 亚洲国产中文字幕在线观看| 黄色精品一区二区| 韩曰欧美视频免费观看| 欧美国产日韩视频| 国产日韩欧美影视| 69视频在线免费观看| 国产精品视频自拍| 国产精品偷伦视频免费观看国产| 日av在线播放中文不卡| 一本色道久久综合狠狠躁篇的优点| 午夜精品久久久久久久白皮肤| 国产精品video| 欧美激情精品在线| 成人免费淫片视频软件| 久久精品视频免费播放| 亚洲欧美制服另类日韩| 国产亚洲精品91在线| 亚洲成av人乱码色午夜| 久久综合色影院| www.久久草.com| 亚洲国产精品一区二区久| 国产亚洲精品美女| 精品久久中文字幕| 国产精品精品一区二区三区午夜版| 国产日韩视频在线观看| 成人在线国产精品| 中文字幕亚洲天堂| 国产极品精品在线观看| 国产精品r级在线| 日韩大陆欧美高清视频区| 精品中文视频在线| …久久精品99久久香蕉国产| 日韩欧美aaa| 国产精品永久免费| 国产精品xxxxx| 亚洲第一天堂av| 日韩电影网在线| 欧美激情中文字幕乱码免费| 91在线观看免费高清完整版在线观看| 91在线视频一区| 欧美亚洲国产另类| 亚洲专区国产精品| 久久999免费视频| 国产日韩欧美中文在线播放| 精品久久久久久| 91青草视频久久| 九九热r在线视频精品| 欧美一区在线直播| 午夜剧场成人观在线视频免费观看| 国产成+人+综合+亚洲欧美丁香花| 久久免费福利视频| 亚洲老板91色精品久久| 国产香蕉一区二区三区在线视频| 国产精品成人v| 91豆花精品一区| 日产日韩在线亚洲欧美| 欧美精品电影在线| 欧美www视频在线观看| 日韩有码视频在线| 久久精品国产69国产精品亚洲| 久久中文字幕在线| 性欧美xxxx交| 国产精品女人久久久久久| 精品国产鲁一鲁一区二区张丽|