Skip to content

Commit 81a44a9

Browse files
authored
Remove problematic base64 encoded images
1 parent dbd41b8 commit 81a44a9

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

projects/ngx-image-cropper/src/lib/component/image-cropper.component.ts

-3
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,6 @@ export class ImageCropperComponent implements OnChanges, OnInit, OnDestroy {
209209
}
210210

211211
private reset(): void {
212-
this.safeImgDataUrl.set('data:image/png;base64,iVBORw0KGg'
213-
+ 'oAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAU'
214-
+ 'AAarVyFEAAAAASUVORK5CYII=');
215212
this.state.loadedImage = undefined;
216213
this.state.maxSize = undefined;
217214
this.imageVisible = false;

projects/ngx-image-cropper/src/lib/utils/exif.utils.ts

+22-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import { ExifTransform } from '../interfaces/exif-transform.interface';
33
// Black 2x1 JPEG, with the following meta information set:
44
// - EXIF Orientation: 6 (Rotated 90° CCW)
55
// 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' +
88
'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +
99
'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +
1010
'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' +
1111
'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' +
12-
'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==';
12+
'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q=='));
1313

1414
export function supportsAutomaticRotation(): Promise<boolean> {
1515
return new Promise((resolve) => {
@@ -23,6 +23,25 @@ export function supportsAutomaticRotation(): Promise<boolean> {
2323
});
2424
}
2525

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+
2645
export function getTransformationsFromExifData(exifRotationOrArrayBuffer: number | ArrayBufferLike): ExifTransform {
2746
if (typeof exifRotationOrArrayBuffer === 'object') {
2847
exifRotationOrArrayBuffer = getExifRotation(exifRotationOrArrayBuffer);

0 commit comments

Comments
 (0)