Skip to content

Commit 5815b6e

Browse files
committed
fix: BMP output size may increase in some situations #195
1 parent 9e298c9 commit 5815b6e

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## 2.0.3 (TBC 2023)
22
* fixed: skip copy Exif metadata when fails [#187](https://github.com/Donaldcwl/browser-image-compression/issues/187)
33
* fixed: raise error if image file is corrupted / cannot be loaded [#194](https://github.com/Donaldcwl/browser-image-compression/issues/194)
4+
* fixed: BMP output size may increase in some situations [#195](https://github.com/Donaldcwl/browser-image-compression/issues/195)
45

56
## 2.0.2 (6 Mar 2023)
67
* fixed: node version restriction [#185](https://github.com/Donaldcwl/browser-image-compression/issues/185)

lib/image-compression.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ export default async function compress(file, options, previousProgress = 0) {
7878
const origExceedMaxSize = tempFile.size > maxSizeByte;
7979
const sizeBecomeLarger = tempFile.size > file.size;
8080
if (process.env.BUILD === 'development') {
81+
console.log('origExceedMaxSize', origExceedMaxSize);
82+
console.log('sizeBecomeLarger', sizeBecomeLarger);
8183
console.log('outputFileType', outputFileType);
8284
console.log('original file size', file.size);
8385
console.log('current file size', tempFile.size);
@@ -100,7 +102,7 @@ export default async function compress(file, options, previousProgress = 0) {
100102
let newCanvas;
101103
let ctx;
102104
let canvas = orientationFixedCanvas;
103-
const shouldReduceResolution = !options.alwaysKeepResolution && origExceedMaxSize;
105+
const shouldReduceResolution = !options.alwaysKeepResolution && (origExceedMaxSize || outputFileType === 'image/bmp');
104106
while (remainingTrials-- && (currentSize > maxSizeByte || currentSize > sourceSize)) {
105107
const newWidth = shouldReduceResolution ? canvas.width * 0.95 : canvas.width;
106108
const newHeight = shouldReduceResolution ? canvas.height * 0.95 : canvas.height;

0 commit comments

Comments
 (0)