vue-editify 0.0.1 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/editify.es.js +185 -1
- package/lib/editify.umd.js +1 -1
- package/package.json +3 -3
- package/src/index.js +1 -1
package/lib/editify.es.js
CHANGED
@@ -1322,6 +1322,98 @@ const file$1 = {
|
|
1322
1322
|
return new File([u8arr], fileName, {
|
1323
1323
|
type: mime
|
1324
1324
|
});
|
1325
|
+
},
|
1326
|
+
/**
|
1327
|
+
* 图片压缩方法
|
1328
|
+
* @param {*} file 需要压缩的图片File文件
|
1329
|
+
* @param {*} opts 压缩参数
|
1330
|
+
*/
|
1331
|
+
compressImage(file2, opts) {
|
1332
|
+
const options = {
|
1333
|
+
//压缩图片的宽,单位px,如果不设置默认为原图宽
|
1334
|
+
width: null,
|
1335
|
+
//压缩图片质量,默认为原图的0.8
|
1336
|
+
quality: 0.8,
|
1337
|
+
//图片类型,jpeg或者webp,默认为jpeg
|
1338
|
+
mimeType: "jpeg",
|
1339
|
+
//压缩后的最大值,单位kb,默认为0表示不设置此值
|
1340
|
+
maxSize: 0,
|
1341
|
+
//小于该大小的图片不进行压缩,单位kb,默认为0表示任何图片都要压缩
|
1342
|
+
minSize: 0
|
1343
|
+
};
|
1344
|
+
if (common$1.isObject(opts)) {
|
1345
|
+
if (number$1.isNumber(opts.width)) {
|
1346
|
+
options.width = opts.width;
|
1347
|
+
}
|
1348
|
+
if (number$1.isNumber(opts.quality) && opts.quality >= 0 && opts.quality <= 1) {
|
1349
|
+
options.quality = opts.quality;
|
1350
|
+
}
|
1351
|
+
if (opts.mimeType == "jpeg" || opts.mimeType == "webp") {
|
1352
|
+
options.mimeType = opts.mimeType;
|
1353
|
+
}
|
1354
|
+
if (number$1.isNumber(opts.maxSize)) {
|
1355
|
+
options.maxSize = opts.maxSize;
|
1356
|
+
}
|
1357
|
+
if (number$1.isNumber(opts.minSize)) {
|
1358
|
+
options.minSize = opts.minSize;
|
1359
|
+
}
|
1360
|
+
}
|
1361
|
+
const createFile = (canvas, fileName, quality) => {
|
1362
|
+
let url2 = canvas.toDataURL("image/" + options.mimeType, quality);
|
1363
|
+
let file3 = this.dataBase64toFile(url2, fileName);
|
1364
|
+
if (options.maxSize > 0 && file3.size > options.maxSize * 1024) {
|
1365
|
+
quality = quality <= 0 ? 0 : Number((quality - 0.01).toFixed(2));
|
1366
|
+
const res = createFile(canvas, fileName, quality);
|
1367
|
+
url2 = res.url;
|
1368
|
+
file3 = res.file;
|
1369
|
+
quality = res.quality;
|
1370
|
+
}
|
1371
|
+
return {
|
1372
|
+
file: file3,
|
1373
|
+
url: url2,
|
1374
|
+
quality
|
1375
|
+
};
|
1376
|
+
};
|
1377
|
+
return new Promise((resolve, reject) => {
|
1378
|
+
let reader = new FileReader();
|
1379
|
+
reader.readAsDataURL(file2);
|
1380
|
+
reader.onload = () => {
|
1381
|
+
let url2 = reader.result;
|
1382
|
+
let img = new Image();
|
1383
|
+
img.src = url2;
|
1384
|
+
img.onload = () => {
|
1385
|
+
if (options.minSize > 0 && file2.size <= options.minSize * 1024) {
|
1386
|
+
resolve({
|
1387
|
+
file: file2,
|
1388
|
+
url: url2,
|
1389
|
+
quality: 1,
|
1390
|
+
width: img.width,
|
1391
|
+
height: img.height
|
1392
|
+
});
|
1393
|
+
return;
|
1394
|
+
}
|
1395
|
+
let canvas = document.createElement("canvas");
|
1396
|
+
let context = canvas.getContext("2d");
|
1397
|
+
canvas.width = options.width || img.width;
|
1398
|
+
canvas.height = options.width ? options.width / (img.width / img.height) : img.height;
|
1399
|
+
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
1400
|
+
let index = file2.name.lastIndexOf(".");
|
1401
|
+
const fileName = file2.name.substring(0, index) + "." + options.mimeType;
|
1402
|
+
let res = createFile(canvas, fileName, options.quality);
|
1403
|
+
resolve({
|
1404
|
+
...res,
|
1405
|
+
width: canvas.width,
|
1406
|
+
height: canvas.height
|
1407
|
+
});
|
1408
|
+
};
|
1409
|
+
img.onerror = () => {
|
1410
|
+
reject(new Error("Failed to load image file"));
|
1411
|
+
};
|
1412
|
+
};
|
1413
|
+
reader.onerror = () => {
|
1414
|
+
reject(new Error("Failed to load image file"));
|
1415
|
+
};
|
1416
|
+
});
|
1325
1417
|
}
|
1326
1418
|
};
|
1327
1419
|
const platform$1 = {
|
@@ -6081,6 +6173,98 @@ const file = {
|
|
6081
6173
|
return new File([u8arr], fileName, {
|
6082
6174
|
type: mime
|
6083
6175
|
});
|
6176
|
+
},
|
6177
|
+
/**
|
6178
|
+
* 图片压缩方法
|
6179
|
+
* @param {*} file 需要压缩的图片File文件
|
6180
|
+
* @param {*} opts 压缩参数
|
6181
|
+
*/
|
6182
|
+
compressImage(file2, opts) {
|
6183
|
+
const options = {
|
6184
|
+
//压缩图片的宽,单位px,如果不设置默认为原图宽
|
6185
|
+
width: null,
|
6186
|
+
//压缩图片质量,默认为原图的0.8
|
6187
|
+
quality: 0.8,
|
6188
|
+
//图片类型,jpeg或者webp,默认为jpeg
|
6189
|
+
mimeType: "jpeg",
|
6190
|
+
//压缩后的最大值,单位kb,默认为0表示不设置此值
|
6191
|
+
maxSize: 0,
|
6192
|
+
//小于该大小的图片不进行压缩,单位kb,默认为0表示任何图片都要压缩
|
6193
|
+
minSize: 0
|
6194
|
+
};
|
6195
|
+
if (common.isObject(opts)) {
|
6196
|
+
if (number.isNumber(opts.width)) {
|
6197
|
+
options.width = opts.width;
|
6198
|
+
}
|
6199
|
+
if (number.isNumber(opts.quality) && opts.quality >= 0 && opts.quality <= 1) {
|
6200
|
+
options.quality = opts.quality;
|
6201
|
+
}
|
6202
|
+
if (opts.mimeType == "jpeg" || opts.mimeType == "webp") {
|
6203
|
+
options.mimeType = opts.mimeType;
|
6204
|
+
}
|
6205
|
+
if (number.isNumber(opts.maxSize)) {
|
6206
|
+
options.maxSize = opts.maxSize;
|
6207
|
+
}
|
6208
|
+
if (number.isNumber(opts.minSize)) {
|
6209
|
+
options.minSize = opts.minSize;
|
6210
|
+
}
|
6211
|
+
}
|
6212
|
+
const createFile = (canvas, fileName, quality) => {
|
6213
|
+
let url2 = canvas.toDataURL("image/" + options.mimeType, quality);
|
6214
|
+
let file3 = this.dataBase64toFile(url2, fileName);
|
6215
|
+
if (options.maxSize > 0 && file3.size > options.maxSize * 1024) {
|
6216
|
+
quality = quality <= 0 ? 0 : Number((quality - 0.01).toFixed(2));
|
6217
|
+
const res = createFile(canvas, fileName, quality);
|
6218
|
+
url2 = res.url;
|
6219
|
+
file3 = res.file;
|
6220
|
+
quality = res.quality;
|
6221
|
+
}
|
6222
|
+
return {
|
6223
|
+
file: file3,
|
6224
|
+
url: url2,
|
6225
|
+
quality
|
6226
|
+
};
|
6227
|
+
};
|
6228
|
+
return new Promise((resolve, reject) => {
|
6229
|
+
let reader = new FileReader();
|
6230
|
+
reader.readAsDataURL(file2);
|
6231
|
+
reader.onload = () => {
|
6232
|
+
let url2 = reader.result;
|
6233
|
+
let img = new Image();
|
6234
|
+
img.src = url2;
|
6235
|
+
img.onload = () => {
|
6236
|
+
if (options.minSize > 0 && file2.size <= options.minSize * 1024) {
|
6237
|
+
resolve({
|
6238
|
+
file: file2,
|
6239
|
+
url: url2,
|
6240
|
+
quality: 1,
|
6241
|
+
width: img.width,
|
6242
|
+
height: img.height
|
6243
|
+
});
|
6244
|
+
return;
|
6245
|
+
}
|
6246
|
+
let canvas = document.createElement("canvas");
|
6247
|
+
let context = canvas.getContext("2d");
|
6248
|
+
canvas.width = options.width || img.width;
|
6249
|
+
canvas.height = options.width ? options.width / (img.width / img.height) : img.height;
|
6250
|
+
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
6251
|
+
let index = file2.name.lastIndexOf(".");
|
6252
|
+
const fileName = file2.name.substring(0, index) + "." + options.mimeType;
|
6253
|
+
let res = createFile(canvas, fileName, options.quality);
|
6254
|
+
resolve({
|
6255
|
+
...res,
|
6256
|
+
width: canvas.width,
|
6257
|
+
height: canvas.height
|
6258
|
+
});
|
6259
|
+
};
|
6260
|
+
img.onerror = () => {
|
6261
|
+
reject(new Error("Failed to load image file"));
|
6262
|
+
};
|
6263
|
+
};
|
6264
|
+
reader.onerror = () => {
|
6265
|
+
reject(new Error("Failed to load image file"));
|
6266
|
+
};
|
6267
|
+
});
|
6084
6268
|
}
|
6085
6269
|
};
|
6086
6270
|
const platform = {
|
@@ -22439,7 +22623,7 @@ const i18n = (locale) => {
|
|
22439
22623
|
return translations[locale][key];
|
22440
22624
|
};
|
22441
22625
|
};
|
22442
|
-
const version = "0.0.
|
22626
|
+
const version = "0.0.11";
|
22443
22627
|
const install = (app, props) => {
|
22444
22628
|
const locale = (props ? props.locale : "zh_CN") || "zh_CN";
|
22445
22629
|
app.provide("$editTrans", i18n(locale));
|