Skip to content

Commit 8fd3b37

Browse files
authored
Merge pull request #56 from Donaldcwl/fix-ie-issue
fixed issue with IE support
2 parents c2e2e56 + eb193fb commit 8fd3b37

File tree

6 files changed

+41
-17
lines changed

6 files changed

+41
-17
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## v1.0.11 (8 May 2020)
2+
* fixed: issue with IE support [#38](https://github.com/Donaldcwl/browser-image-compression/issues/38) [#23](https://github.com/Donaldcwl/browser-image-compression/issues/23)
3+
14
## v1.0.10 (7 May 2020)
25
* fixed: issue in Web Worker when onProgress is undefined [#50](https://github.com/Donaldcwl/browser-image-compression/issues/50)
36
* fixed: handle behavior change of exif orientation in iOS 13.4.1 and Safari 13.1 Desktop [#52](https://github.com/Donaldcwl/browser-image-compression/issues/52)

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,16 @@ or check the "[example]" folder in this repo
134134
| --------- | --------- | --------- | --------- | --------- | --------- |
135135
| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions| last 2 versions
136136

137+
## IE support ##
138+
Promise API is being used in this library. If you need to support browser that do not support Promise like IE. You can include the Promise polyfill in your project.
139+
140+
See: https://github.com/taylorhakes/promise-polyfill
141+
142+
You can include the following script to load the Promise polyfill:
143+
```html
144+
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
145+
```
146+
137147
## Typescript type definitions ##
138148
```
139149
npm install --save-dev @types/browser-image-compression

example/basic.html

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252

5353
<script>
54-
async function compressImage (event, useWebWorker) {
54+
function compressImage (event, useWebWorker) {
5555
var file = event.target.files[0]
5656
var logDom, progressDom
5757
if (useWebWorker) {
@@ -65,20 +65,23 @@
6565

6666
logDom.innerHTML = 'Source image size:' + (file.size / 1024 / 1024).toFixed(2) + 'mb'
6767
console.log('input', file)
68-
console.log('ExifOrientation', await imageCompression.getExifOrientation(file))
68+
imageCompression.getExifOrientation(file).then(function (o) {
69+
console.log('ExifOrientation', o)
70+
})
6971

7072
var options = {
7173
maxSizeMB: parseFloat(document.querySelector('#maxSizeMB').value),
7274
maxWidthOrHeight: parseFloat(document.querySelector('#maxWidthOrHeight').value),
7375
useWebWorker: useWebWorker,
7476
onProgress: onProgress
7577
}
76-
const output = await imageCompression(file, options)
77-
logDom.innerHTML += ', output size:' + (output.size / 1024 / 1024).toFixed(2) + 'mb'
78-
console.log('output', output)
79-
const downloadLink = URL.createObjectURL(output)
80-
logDom.innerHTML += '&nbsp;<a href="' + downloadLink + '" download="' + file.name + '">download compressed image</a>'
81-
document.getElementById('preview-after-compress').src = downloadLink
78+
imageCompression(file, options).then(function (output) {
79+
logDom.innerHTML += ', output size:' + (output.size / 1024 / 1024).toFixed(2) + 'mb'
80+
console.log('output', output)
81+
const downloadLink = URL.createObjectURL(output)
82+
logDom.innerHTML += '&nbsp;<a href="' + downloadLink + '" download="' + file.name + '">download compressed image</a>'
83+
document.getElementById('preview-after-compress').src = downloadLink
84+
})
8285

8386
// await uploadToServer(output)
8487

@@ -96,6 +99,7 @@
9699
})
97100
}
98101
</script>
102+
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
99103
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/browser-image-compression.js"></script>
100104
</body>
101105
</html>

example/development.html

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252

5353
<script>
54-
async function compressImage (event, useWebWorker) {
54+
function compressImage (event, useWebWorker) {
5555
var file = event.target.files[0]
5656
var logDom, progressDom
5757
if (useWebWorker) {
@@ -65,20 +65,24 @@
6565

6666
logDom.innerHTML = 'Source image size:' + (file.size / 1024 / 1024).toFixed(2) + 'mb'
6767
console.log('input', file)
68-
console.log('ExifOrientation', await imageCompression.getExifOrientation(file))
68+
imageCompression.getExifOrientation(file).then(function (o) {
69+
console.log('ExifOrientation', o)
70+
})
6971

7072
var options = {
7173
maxSizeMB: parseFloat(document.querySelector('#maxSizeMB').value),
7274
maxWidthOrHeight: parseFloat(document.querySelector('#maxWidthOrHeight').value),
7375
useWebWorker: useWebWorker,
7476
onProgress: onProgress
7577
}
76-
const output = await imageCompression(file, options)
77-
logDom.innerHTML += ', output size:' + (output.size / 1024 / 1024).toFixed(2) + 'mb'
78-
console.log('output', output)
79-
const downloadLink = URL.createObjectURL(output)
80-
logDom.innerHTML += '&nbsp;<a href="' + downloadLink + '" download="' + file.name + '">download compressed image</a>'
81-
document.getElementById('preview-after-compress').src = downloadLink
78+
imageCompression(file, options).then(function (output) {
79+
logDom.innerHTML += ', output size:' + (output.size / 1024 / 1024).toFixed(2) + 'mb'
80+
console.log('output', output)
81+
const downloadLink = URL.createObjectURL(output)
82+
logDom.innerHTML += '&nbsp;<a href="' + downloadLink + '" download="' + file.name + '">download compressed image</a>'
83+
document.getElementById('preview-after-compress').src = downloadLink
84+
})
85+
8286

8387
// await uploadToServer(output)
8488

@@ -96,6 +100,7 @@
96100
})
97101
}
98102
</script>
103+
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
99104
<script type="text/javascript" src="../dist/browser-image-compression.js"></script>
100105
</body>
101106
</html>

lib/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ export function handleMaxWidthOrHeight (canvas, options) {
210210
const height = canvas.height
211211
const maxWidthOrHeight = options.maxWidthOrHeight
212212

213-
const needToHandle = Number.isFinite(maxWidthOrHeight) && (width > maxWidthOrHeight || height > maxWidthOrHeight)
213+
const needToHandle = isFinite(maxWidthOrHeight) && (width > maxWidthOrHeight || height > maxWidthOrHeight)
214214

215215
let newCanvas = canvas
216216
let ctx

lib/web-worker.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ export function compressOnWebWorker (file, options) {
109109
}
110110

111111
worker.addEventListener('message', handler)
112+
worker.addEventListener('error', reject)
113+
112114
worker.postMessage({
113115
file,
114116
id,

0 commit comments

Comments
 (0)