imageToSquare.js 1.4 KB

1234567891011121314151617181920212223242526
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var env_1 = require("../env");
  4. var createCanvas_1 = require("./createCanvas");
  5. var getContext2dOrThrow_1 = require("./getContext2dOrThrow");
  6. var getMediaDimensions_1 = require("./getMediaDimensions");
  7. function imageToSquare(input, inputSize, centerImage) {
  8. if (centerImage === void 0) { centerImage = false; }
  9. var _a = env_1.env.getEnv(), Image = _a.Image, Canvas = _a.Canvas;
  10. if (!(input instanceof Image || input instanceof Canvas)) {
  11. throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');
  12. }
  13. var dims = getMediaDimensions_1.getMediaDimensions(input);
  14. var scale = inputSize / Math.max(dims.height, dims.width);
  15. var width = scale * dims.width;
  16. var height = scale * dims.height;
  17. var targetCanvas = createCanvas_1.createCanvas({ width: inputSize, height: inputSize });
  18. var inputCanvas = input instanceof Canvas ? input : createCanvas_1.createCanvasFromMedia(input);
  19. var offset = Math.abs(width - height) / 2;
  20. var dx = centerImage && width < height ? offset : 0;
  21. var dy = centerImage && height < width ? offset : 0;
  22. getContext2dOrThrow_1.getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);
  23. return targetCanvas;
  24. }
  25. exports.imageToSquare = imageToSquare;
  26. //# sourceMappingURL=imageToSquare.js.map