{"ast":null,"code":"var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nimport { QiniuErrorName, QiniuError } from '../errors';\nimport { createObjectURL } from './helper';\nvar mimeTypes = {\n PNG: 'image/png',\n JPEG: 'image/jpeg',\n WEBP: 'image/webp',\n BMP: 'image/bmp'\n};\nvar maxSteps = 4;\nvar scaleFactor = Math.log(2);\nvar supportMimeTypes = Object.keys(mimeTypes).map(function (type) {\n return mimeTypes[type];\n});\nvar defaultType = mimeTypes.JPEG;\nfunction isSupportedType(type) {\n return supportMimeTypes.includes(type);\n}\nvar Compress = /** @class */function () {\n function Compress(file, config) {\n this.file = file;\n this.config = config;\n this.config = __assign({\n quality: 0.92,\n noCompressIfLarger: false\n }, this.config);\n }\n Compress.prototype.process = function () {\n return __awaiter(this, void 0, void 0, function () {\n var srcDimension, originImage, canvas, scale, scaleCanvas, distBlob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.outputType = this.file.type;\n srcDimension = {};\n if (!isSupportedType(this.file.type)) {\n throw new QiniuError(QiniuErrorName.UnsupportedFileType, \"unsupported file type: \" + this.file.type);\n }\n return [4 /*yield*/, this.getOriginImage()];\n case 1:\n originImage = _a.sent();\n return [4 /*yield*/, this.getCanvas(originImage)];\n case 2:\n canvas = _a.sent();\n scale = 1;\n if (this.config.maxWidth) {\n scale = Math.min(1, this.config.maxWidth / canvas.width);\n }\n if (this.config.maxHeight) {\n scale = Math.min(1, scale, this.config.maxHeight / canvas.height);\n }\n srcDimension.width = canvas.width;\n srcDimension.height = canvas.height;\n return [4 /*yield*/, this.doScale(canvas, scale)];\n case 3:\n scaleCanvas = _a.sent();\n distBlob = this.toBlob(scaleCanvas);\n if (distBlob.size > this.file.size && this.config.noCompressIfLarger) {\n return [2 /*return*/, {\n dist: this.file,\n width: srcDimension.width,\n height: srcDimension.height\n }];\n }\n return [2 /*return*/, {\n dist: distBlob,\n width: scaleCanvas.width,\n height: scaleCanvas.height\n }];\n }\n });\n });\n };\n Compress.prototype.clear = function (ctx, width, height) {\n // jpeg 没有 alpha 通道,透明区间会被填充成黑色,这里把透明区间填充为白色\n if (this.outputType === defaultType) {\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, width, height);\n } else {\n ctx.clearRect(0, 0, width, height);\n }\n };\n /** 通过 file 初始化 image 对象 */\n Compress.prototype.getOriginImage = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var url = createObjectURL(_this.file);\n var img = new Image();\n img.onload = function () {\n resolve(img);\n };\n img.onerror = function () {\n reject('image load error');\n };\n img.src = url;\n });\n };\n Compress.prototype.getCanvas = function (img) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n if (!context) {\n reject(new QiniuError(QiniuErrorName.GetCanvasContextFailed, 'context is null'));\n return;\n }\n var width = img.width,\n height = img.height;\n canvas.height = height;\n canvas.width = width;\n _this.clear(context, width, height);\n context.drawImage(img, 0, 0);\n resolve(canvas);\n });\n };\n Compress.prototype.doScale = function (source, scale) {\n return __awaiter(this, void 0, void 0, function () {\n var sctx, steps, factor, mirror, mctx, width, height, originWidth, originHeight, src, context, i, dw, dh, canvas, data;\n return __generator(this, function (_a) {\n if (scale === 1) {\n return [2 /*return*/, source];\n }\n sctx = source.getContext('2d');\n steps = Math.min(maxSteps, Math.ceil(1 / scale / scaleFactor));\n factor = Math.pow(scale, 1 / steps);\n mirror = document.createElement('canvas');\n mctx = mirror.getContext('2d');\n width = source.width, height = source.height;\n originWidth = width;\n originHeight = height;\n mirror.width = width;\n mirror.height = height;\n if (!mctx || !sctx) {\n throw new QiniuError(QiniuErrorName.GetCanvasContextFailed, \"mctx or sctx can't be null\");\n }\n for (i = 0; i < steps; i++) {\n dw = width * factor | 0 // eslint-disable-line no-bitwise\n ;\n dh = height * factor | 0 // eslint-disable-line no-bitwise\n ;\n // 到最后一步的时候 dw, dh 用目标缩放尺寸,否则会出现最后尺寸偏小的情况\n if (i === steps - 1) {\n dw = originWidth * scale;\n dh = originHeight * scale;\n }\n if (i % 2 === 0) {\n src = source;\n context = mctx;\n } else {\n src = mirror;\n context = sctx;\n }\n // 每次画前都清空,避免图像重叠\n this.clear(context, width, height);\n context.drawImage(src, 0, 0, width, height, 0, 0, dw, dh);\n width = dw;\n height = dh;\n }\n canvas = src === source ? mirror : source;\n data = context.getImageData(0, 0, width, height);\n // resize\n canvas.width = width;\n canvas.height = height;\n // store image data\n context.putImageData(data, 0, 0);\n return [2 /*return*/, canvas];\n });\n });\n };\n /** 这里把 base64 字符串转为 blob 对象 */\n Compress.prototype.toBlob = function (result) {\n var dataURL = result.toDataURL(this.outputType, this.config.quality);\n var buffer = atob(dataURL.split(',')[1]).split('').map(function (char) {\n return char.charCodeAt(0);\n });\n var blob = new Blob([new Uint8Array(buffer)], {\n type: this.outputType\n });\n return blob;\n };\n return Compress;\n}();\nvar compressImage = function (file, options) {\n return new Compress(file, options).process();\n};\nexport default compressImage;","map":{"version":3,"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","QiniuErrorName","QiniuError","createObjectURL","mimeTypes","PNG","JPEG","WEBP","BMP","maxSteps","scaleFactor","Math","log","supportMimeTypes","keys","map","type","defaultType","isSupportedType","includes","Compress","file","config","quality","noCompressIfLarger","process","srcDimension","originImage","canvas","scale","scaleCanvas","distBlob","_a","outputType","UnsupportedFileType","getOriginImage","getCanvas","maxWidth","min","width","maxHeight","height","doScale","toBlob","size","dist","clear","ctx","fillStyle","fillRect","clearRect","_this","url","img","Image","onload","onerror","src","document","createElement","context","getContext","GetCanvasContextFailed","drawImage","source","sctx","steps","factor","mirror","mctx","originWidth","originHeight","dw","dh","data","ceil","pow","getImageData","putImageData","dataURL","toDataURL","buffer","atob","split","char","charCodeAt","blob","Blob","Uint8Array","compressImage","options"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/qiniu-js/esm/utils/compress.js"],"sourcesContent":["var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { QiniuErrorName, QiniuError } from '../errors';\nimport { createObjectURL } from './helper';\nvar mimeTypes = {\n PNG: 'image/png',\n JPEG: 'image/jpeg',\n WEBP: 'image/webp',\n BMP: 'image/bmp'\n};\nvar maxSteps = 4;\nvar scaleFactor = Math.log(2);\nvar supportMimeTypes = Object.keys(mimeTypes).map(function (type) { return mimeTypes[type]; });\nvar defaultType = mimeTypes.JPEG;\nfunction isSupportedType(type) {\n return supportMimeTypes.includes(type);\n}\nvar Compress = /** @class */ (function () {\n function Compress(file, config) {\n this.file = file;\n this.config = config;\n this.config = __assign({ quality: 0.92, noCompressIfLarger: false }, this.config);\n }\n Compress.prototype.process = function () {\n return __awaiter(this, void 0, void 0, function () {\n var srcDimension, originImage, canvas, scale, scaleCanvas, distBlob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.outputType = this.file.type;\n srcDimension = {};\n if (!isSupportedType(this.file.type)) {\n throw new QiniuError(QiniuErrorName.UnsupportedFileType, \"unsupported file type: \" + this.file.type);\n }\n return [4 /*yield*/, this.getOriginImage()];\n case 1:\n originImage = _a.sent();\n return [4 /*yield*/, this.getCanvas(originImage)];\n case 2:\n canvas = _a.sent();\n scale = 1;\n if (this.config.maxWidth) {\n scale = Math.min(1, this.config.maxWidth / canvas.width);\n }\n if (this.config.maxHeight) {\n scale = Math.min(1, scale, this.config.maxHeight / canvas.height);\n }\n srcDimension.width = canvas.width;\n srcDimension.height = canvas.height;\n return [4 /*yield*/, this.doScale(canvas, scale)];\n case 3:\n scaleCanvas = _a.sent();\n distBlob = this.toBlob(scaleCanvas);\n if (distBlob.size > this.file.size && this.config.noCompressIfLarger) {\n return [2 /*return*/, {\n dist: this.file,\n width: srcDimension.width,\n height: srcDimension.height\n }];\n }\n return [2 /*return*/, {\n dist: distBlob,\n width: scaleCanvas.width,\n height: scaleCanvas.height\n }];\n }\n });\n });\n };\n Compress.prototype.clear = function (ctx, width, height) {\n // jpeg 没有 alpha 通道,透明区间会被填充成黑色,这里把透明区间填充为白色\n if (this.outputType === defaultType) {\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, width, height);\n }\n else {\n ctx.clearRect(0, 0, width, height);\n }\n };\n /** 通过 file 初始化 image 对象 */\n Compress.prototype.getOriginImage = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var url = createObjectURL(_this.file);\n var img = new Image();\n img.onload = function () {\n resolve(img);\n };\n img.onerror = function () {\n reject('image load error');\n };\n img.src = url;\n });\n };\n Compress.prototype.getCanvas = function (img) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n if (!context) {\n reject(new QiniuError(QiniuErrorName.GetCanvasContextFailed, 'context is null'));\n return;\n }\n var width = img.width, height = img.height;\n canvas.height = height;\n canvas.width = width;\n _this.clear(context, width, height);\n context.drawImage(img, 0, 0);\n resolve(canvas);\n });\n };\n Compress.prototype.doScale = function (source, scale) {\n return __awaiter(this, void 0, void 0, function () {\n var sctx, steps, factor, mirror, mctx, width, height, originWidth, originHeight, src, context, i, dw, dh, canvas, data;\n return __generator(this, function (_a) {\n if (scale === 1) {\n return [2 /*return*/, source];\n }\n sctx = source.getContext('2d');\n steps = Math.min(maxSteps, Math.ceil((1 / scale) / scaleFactor));\n factor = Math.pow(scale, (1 / steps));\n mirror = document.createElement('canvas');\n mctx = mirror.getContext('2d');\n width = source.width, height = source.height;\n originWidth = width;\n originHeight = height;\n mirror.width = width;\n mirror.height = height;\n if (!mctx || !sctx) {\n throw new QiniuError(QiniuErrorName.GetCanvasContextFailed, \"mctx or sctx can't be null\");\n }\n for (i = 0; i < steps; i++) {\n dw = width * factor | 0 // eslint-disable-line no-bitwise\n ;\n dh = height * factor | 0 // eslint-disable-line no-bitwise\n ;\n // 到最后一步的时候 dw, dh 用目标缩放尺寸,否则会出现最后尺寸偏小的情况\n if (i === steps - 1) {\n dw = originWidth * scale;\n dh = originHeight * scale;\n }\n if (i % 2 === 0) {\n src = source;\n context = mctx;\n }\n else {\n src = mirror;\n context = sctx;\n }\n // 每次画前都清空,避免图像重叠\n this.clear(context, width, height);\n context.drawImage(src, 0, 0, width, height, 0, 0, dw, dh);\n width = dw;\n height = dh;\n }\n canvas = src === source ? mirror : source;\n data = context.getImageData(0, 0, width, height);\n // resize\n canvas.width = width;\n canvas.height = height;\n // store image data\n context.putImageData(data, 0, 0);\n return [2 /*return*/, canvas];\n });\n });\n };\n /** 这里把 base64 字符串转为 blob 对象 */\n Compress.prototype.toBlob = function (result) {\n var dataURL = result.toDataURL(this.outputType, this.config.quality);\n var buffer = atob(dataURL.split(',')[1]).split('').map(function (char) { return char.charCodeAt(0); });\n var blob = new Blob([new Uint8Array(buffer)], { type: this.outputType });\n return blob;\n };\n return Compress;\n}());\nvar compressImage = function (file, options) { return new Compress(file, options).process(); };\nexport default compressImage;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}