@@ -30,13 +30,21 @@ export async function insertStorage(key, value) {
30
30
return await Preferences . set ( { key : key , value : value } ) ;
31
31
}
32
32
33
- export async function compressImage ( quality , prevImage ) {
33
+ export async function compressImage ( maxSizeKb , prevImage ) {
34
+ let opts = { quality : 1 } ;
35
+ if ( maxSizeKb ) {
36
+ opts = {
37
+ quality : Math . min ( 1 , maxSizeKb / prevImage . size ) ,
38
+ maxWidth : 768 ,
39
+ maxHeight : 768 ,
40
+ } ;
41
+ }
34
42
const nextImage = await new Promise ( ( resolve , reject ) => {
35
43
new Compressor ( prevImage , {
36
- quality : quality ,
37
44
mimeType : "image/jpeg" ,
38
45
success : resolve ,
39
46
error : reject ,
47
+ ...opts ,
40
48
} ) ;
41
49
} ) ;
42
50
return nextImage ;
@@ -64,7 +72,7 @@ export async function selectDataUrl(value, opfsName = null) {
64
72
const { buffer : u8a , typeFull : mime } = dataUriToBuffer ( value ) ;
65
73
let blob = new Blob ( [ u8a ] , { type : mime } ) ;
66
74
if ( mime . startsWith ( "image" ) ) {
67
- blob = await compressImage ( 1 , blob ) ;
75
+ blob = await compressImage ( null , blob ) ;
68
76
}
69
77
if ( opfsName ) {
70
78
await opfsWrite ( value , opfsName ) ;
@@ -82,7 +90,6 @@ export async function opfsWrite(value, opfsName) {
82
90
const stream = await handle . createWritable ( ) ;
83
91
await stream . write ( value ) ;
84
92
await stream . close ( ) ;
85
- console . log ( "OPFS write success:" , handle , opfsName ) ;
86
93
} catch ( e ) {
87
94
alert ( "OPFS write failure: " + e . toString ( ) + " file: " + opfsName ) ;
88
95
}
@@ -96,7 +103,6 @@ export async function opfsRead(opfsName) {
96
103
const file = await handle . getFile ( ) ;
97
104
const uri = await file . text ( ) ;
98
105
const res = await selectDataUrl ( uri ) ;
99
- console . log ( "OPFS read success:" , res , opfsName ) ;
100
106
return res ;
101
107
} catch ( e ) {
102
108
alert ( "OPFS read failure: " + e . toString ( ) + " file: " + opfsName ) ;
@@ -111,7 +117,6 @@ export async function opfsList() {
111
117
for await ( let opfsName of root . keys ( ) ) {
112
118
res . push ( opfsName ) ;
113
119
}
114
- console . log ( "OPFS list success:" , res , opfsName ) ;
115
120
return res ;
116
121
} catch ( e ) {
117
122
alert ( "OPFS list failure: " + e . toString ( ) + " file: " + opfsName ) ;
@@ -195,10 +200,10 @@ export function isNativePlatform() {
195
200
return Capacitor . isNativePlatform ( ) ;
196
201
}
197
202
198
- export async function fetchUrlAsRfc2397 ( url ) {
203
+ export async function fetchUrlAsRfc2397 ( maxSizeKb , url ) {
199
204
const imgResp = await fetch ( url ) ;
200
205
const imgBlob = await imgResp . blob ( ) ;
201
- const imgComp = await compressImage ( 0.2 , imgBlob ) ;
206
+ const imgComp = await compressImage ( maxSizeKb , imgBlob ) ;
202
207
const rfc2397 = await new Promise ( ( resolve , reject ) => {
203
208
var fr = new FileReader ( ) ;
204
209
fr . onload = ( ) => {
0 commit comments