import { Component, OnInit,ViewChild,ElementRef,EventEmitter, Output } from '@angular/core'; import { HttpClient, HttpParams,HttpHeaders } from "@angular/common/http"; import {NgbModal} from "@ng-bootstrap/ng-bootstrap" import { ImageCroppedEvent,LoadedImage } from 'ngx-image-cropper'; import {ImageService } from '../../services/image.service'; @Component({ selector: 'fm-edit-image-modal', templateUrl: './edit-image-modal.component.html', styleUrls: ['./edit-image-modal.component.scss'] }) export class EditImageModalComponent implements OnInit { @Output() changed = new EventEmitter(); @ViewChild('upload_modal') modal:ElementRef; constructor(private modalService: NgbModal,public imageService:ImageService) { } isImageLoaded = false; aspectRatio:number = 4/3; imageChangedEvent: any = ''; croppedImage = ''; endpointUrl:string = null; imageUrl:string = null; maxWidth = 200; roundImage = false; imageType = "jpeg"; saveImage = true; ngOnInit(): void { } open(endpoint:string,aspectRatio:number,roundImage?:boolean,maxWidth?:number,saveImage?:boolean, imageType?:string) { this.endpointUrl = endpoint; this.imageUrl = endpoint; this.aspectRatio= aspectRatio; this.roundImage = roundImage === undefined?this.roundImage:roundImage; this.maxWidth = maxWidth === undefined?this.maxWidth:maxWidth; this.imageType = imageType === undefined?this.imageType:imageType.substr(6); this.saveImage = saveImage === undefined?this.saveImage:saveImage; this.modalService.open(this.modal,{ size: 'lg' }); } fileChangeEvent(event: any): void { this.imageChangedEvent = event; } imageCropped(event: ImageCroppedEvent) { this.croppedImage = event.base64; } imageLoaded(image: LoadedImage) { this.isImageLoaded=true; } cropperReady() { // cropper ready } loadImageFailed() { // show message } save() { if(this.croppedImage) { const blob = this.imageService.dataUrltoBlob(this.croppedImage); if(this.saveImage) { this.imageService.putImage(this.endpointUrl,blob).subscribe(() => { this.changed.emit({}); }); } else { this.changed.emit({ "croppedImage": this.imageService.blobToFile(blob,"croppedimage.jpg")} ); } this.modalService.dismissAll("Save"); } } }