@@ -3,13 +3,13 @@ import { ExifTransform } from '../interfaces/exif-transform.interface';
3
3
// Black 2x1 JPEG, with the following meta information set:
4
4
// - EXIF Orientation: 6 (Rotated 90° CCW)
5
5
// Source: https://github.com/blueimp/JavaScript-Load-Image
6
- const testAutoOrientationImageURL =
7
- 'data:image/jpeg;base64, /9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +
6
+ const testAutoOrientationImageURL = URL . createObjectURL ( b64toBlob (
7
+ '/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +
8
8
'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +
9
9
'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +
10
10
'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' +
11
11
'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' +
12
- 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==' ;
12
+ 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==' ) ) ;
13
13
14
14
export function supportsAutomaticRotation ( ) : Promise < boolean > {
15
15
return new Promise ( ( resolve ) => {
@@ -23,6 +23,25 @@ export function supportsAutomaticRotation(): Promise<boolean> {
23
23
} ) ;
24
24
}
25
25
26
+ function b64toBlob ( b64Data : string , contentType = '' , sliceSize = 512 ) {
27
+ const byteCharacters = atob ( b64Data ) ;
28
+ const byteArrays = [ ] ;
29
+
30
+ for ( let offset = 0 ; offset < byteCharacters . length ; offset += sliceSize ) {
31
+ const slice = byteCharacters . slice ( offset , offset + sliceSize ) ;
32
+
33
+ const byteNumbers = new Array ( slice . length ) ;
34
+ for ( let i = 0 ; i < slice . length ; i ++ ) {
35
+ byteNumbers [ i ] = slice . charCodeAt ( i ) ;
36
+ }
37
+
38
+ const byteArray = new Uint8Array ( byteNumbers ) ;
39
+ byteArrays . push ( byteArray ) ;
40
+ }
41
+
42
+ return new Blob ( byteArrays , { type : contentType } ) ;
43
+ }
44
+
26
45
export function getTransformationsFromExifData ( exifRotationOrArrayBuffer : number | ArrayBufferLike ) : ExifTransform {
27
46
if ( typeof exifRotationOrArrayBuffer === 'object' ) {
28
47
exifRotationOrArrayBuffer = getExifRotation ( exifRotationOrArrayBuffer ) ;
0 commit comments