diff --git a/projects/ngx-image-cropper/src/lib/component/cropper.state.ts b/projects/ngx-image-cropper/src/lib/component/cropper.state.ts index 7044218..a19ccf1 100644 --- a/projects/ngx-image-cropper/src/lib/component/cropper.state.ts +++ b/projects/ngx-image-cropper/src/lib/component/cropper.state.ts @@ -28,7 +28,8 @@ export class CropperState { containWithinAspectRatio: false, hideResizeSquares: false, alignImage: 'center', - cropperFrameAriaLabel: undefined + cropperFrameAriaLabel: undefined, + checkImageType: true }; loadedImage?: LoadedImage; diff --git a/projects/ngx-image-cropper/src/lib/component/image-cropper.component.ts b/projects/ngx-image-cropper/src/lib/component/image-cropper.component.ts index 8862a9a..0578711 100644 --- a/projects/ngx-image-cropper/src/lib/component/image-cropper.component.ts +++ b/projects/ngx-image-cropper/src/lib/component/image-cropper.component.ts @@ -105,6 +105,7 @@ export class ImageCropperComponent implements OnChanges, OnInit { @Input() containWithinAspectRatio?: boolean; @Input() hideResizeSquares?: boolean; @Input() allowMoveImage = false; + @Input() checkImageType = true; @Input() alignImage?: 'left' | 'center'; @HostBinding('class.disabled') diff --git a/projects/ngx-image-cropper/src/lib/interfaces/cropper-options.interface.ts b/projects/ngx-image-cropper/src/lib/interfaces/cropper-options.interface.ts index 65dd0f2..4a788ef 100644 --- a/projects/ngx-image-cropper/src/lib/interfaces/cropper-options.interface.ts +++ b/projects/ngx-image-cropper/src/lib/interfaces/cropper-options.interface.ts @@ -22,6 +22,7 @@ export interface CropperOptions { hideResizeSquares: boolean; alignImage: 'left' | 'center'; cropperFrameAriaLabel: string | undefined; + checkImageType: boolean; } export type OutputFormat = 'png' | 'jpeg' | 'bmp' | 'webp' | 'ico'; diff --git a/projects/ngx-image-cropper/src/lib/services/load-image.service.ts b/projects/ngx-image-cropper/src/lib/services/load-image.service.ts index c5e6f83..3346786 100644 --- a/projects/ngx-image-cropper/src/lib/services/load-image.service.ts +++ b/projects/ngx-image-cropper/src/lib/services/load-image.service.ts @@ -18,7 +18,10 @@ export class LoadImageService { async loadImageFile(file: File, cropperSettings: CropperState): Promise { const arrayBuffer = await file.arrayBuffer(); - return await this.checkImageTypeAndLoadImageFromArrayBuffer(arrayBuffer, file.type, cropperSettings); + if (cropperSettings.options.checkImageType) { + return await this.checkImageTypeAndLoadImageFromArrayBuffer(arrayBuffer, file.type, cropperSettings); + } + return await this.loadImageFromArrayBuffer(arrayBuffer, cropperSettings); } private checkImageTypeAndLoadImageFromArrayBuffer(arrayBuffer: ArrayBufferLike, imageType: string, cropperSettings: CropperState): Promise { @@ -29,7 +32,7 @@ export class LoadImageService { } private isValidImageType(type: string): boolean { - return /image\/(png|jpg|jpeg|bmp|gif|tiff|svg|webp|x-icon|vnd.microsoft.icon)/.test(type); + return /image\/(png|jpg|jpeg|heic|bmp|gif|tiff|svg|webp|x-icon|vnd.microsoft.icon)/.test(type); } async loadImageFromURL(url: string, cropperSettings: CropperState): Promise {