国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:12:46
字體:
來源:轉載
供稿:網友

你想在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); })}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 新津县| 永川市| 桓台县| 含山县| 綦江县| 兴安盟| 清新县| 贵德县| 肃南| 甘泉县| 迭部县| 香格里拉县| 石楼县| 财经| 冀州市| 吴江市| 岗巴县| 合山市| 贵南县| 彩票| 昭通市| 乌审旗| 张家港市| 安康市| 张北县| 中超| 沙坪坝区| 惠州市| 临澧县| 郧西县| 佳木斯市| 沈阳市| 嵩明县| 高密市| 盈江县| 安达市| 湄潭县| 沅江市| 额济纳旗| 东城区| 津南区|