File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/src/app/services/photo.service.ts
import { Injectable } from '@angular/core';
import { ActionSheetController } from '@ionic/angular';
import { Camera, CameraResultType } from '@capacitor/camera';
import { TranslateService } from '@ngx-translate/core';
import { Capacitor } from '@capacitor/core';
@Injectable({
providedIn: 'root'
})
export class PhotoService {
constructor(public actionSheetCtrl: ActionSheetController, public translateService: TranslateService) { }
async actionSheetImage(fileInput?) {
return new Promise(async (resolve, reject) => {
if (Capacitor.isNativePlatform()) {
const permissions = await Camera.requestPermissions();
if (permissions.photos === 'denied' || permissions.camera === 'denied') {
return;
}
var options = {
quality: 90,
targetWidth: 600,
targetHeight: 600,
saveToPhotoAlbum: false,
correctOrientation: true,
cameraDirection: 1,
resultType: CameraResultType.Base64,
promptLabelHeader: this.translateService.instant('TITLE_ACTION_SHEET'),
promptLabelPhoto: this.translateService.instant('TEXT2_ACTION_SHEET'),
promptLabelPicture: this.translateService.instant('TEXT1_ACTION_SHEET')
};
var image = await Camera.getPhoto(options);
resolve("data:image/" + image.format + ";base64," + image.base64String);
} else {
fileInput.click();
fileInput.addEventListener("change", function (event) {
const target = event.target as HTMLInputElement;
if (target.files && target.files.length > 0) {
const file = target.files[0];
const reader = new FileReader();
reader.onload = () => {
let base64Image = reader.result as string;
resolve(base64Image);
};
reader.readAsDataURL(file)
}
});
}
});
}
}