askui
Version:
Reliable, automated end-to-end-testing that depends on what is shown on your screen instead of the technology you are running on
47 lines (46 loc) • 2.52 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.resizeBase64ImageWithSameRatio = resizeBase64ImageWithSameRatio;
const lib_1 = require("../lib");
const base_64_image_1 = require("./base_64_image/base-64-image");
const image_resize_errors_1 = require("./image-resize-errors");
/**
* Resizes a base64image only when the height or the width is bigger than the maxEdge Param,so that
* the returned image keeps the same aspect ratio but have a max size equal to the threshold.
*
* @param {string} base64ImageString - A base64 encoded image
* @param {number} maxEdge - A max image height or width, if excceded, the image will be resized
*
* @returns {Promise<ResizedImage>} ResiziedImage Interface,
* the true pixel values = controlui-api response * resizeRatio.
*/
function resizeBase64ImageWithSameRatio(base64ImageString_1) {
return __awaiter(this, arguments, void 0, function* (base64ImageString, maxEdge = 1400) {
lib_1.logger.debug('Image resizing');
try {
const image = yield base_64_image_1.Base64Image.fromString(base64ImageString);
const imageInfo = yield image.getInfo();
if (imageInfo.height <= maxEdge && imageInfo.width <= maxEdge) {
return { base64Image: base64ImageString, resizeRatio: 1 };
}
const resizedImage = yield image.resizeToFitInto(maxEdge);
const resizedImageInfo = yield resizedImage.getInfo();
return {
base64Image: resizedImage.toString(),
resizeRatio: imageInfo.width / resizedImageInfo.width,
};
}
catch (error) {
throw new image_resize_errors_1.ImageResizingError(`A Problem has occured during the resizing of the image. Error: ${error}`);
}
});
}