illustrator.js
Version:
JavaScript image processing library
116 lines (115 loc) • 5.69 kB
JavaScript
"use strict";
var _PixelsTool_instances, _PixelsTool_transformer, _PixelsTool_ensureTransformer;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PixelsTool = void 0;
const tslib_1 = require("tslib");
const exports_1 = require("../exports");
const IllustratorImage_1 = require("../../image/IllustratorImage");
class PixelsTool extends exports_1.ToolBox {
constructor() {
super(...arguments);
_PixelsTool_instances.add(this);
_PixelsTool_transformer.set(this, void 0);
}
async createRawTransformer(src) {
const transformer = await this.layer.illustrator.image.loadImage(src);
tslib_1.__classPrivateFieldSet(this, _PixelsTool_transformer, transformer, "f");
}
async createTransformer(context) {
const data = this.layer.context.getImageData(context.from, context.to, context.width, context.height);
const transformer = await IllustratorImage_1.IllustratorImage.fromImageData(data);
tslib_1.__classPrivateFieldSet(this, _PixelsTool_transformer, transformer, "f");
}
rotate(orientation) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
// @ts-expect-error
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.rotate(IllustratorImage_1.IllustratorImageEnums.Orientation[orientation]);
return this;
}
crop(context) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.crop(context.from, context.to, context.width, context.height);
return this;
}
invert() {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.invert();
return this;
}
setBrightness(brightness) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.brighten(brightness);
return this;
}
setContrast(contrast) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.adjustContrast(contrast);
return this;
}
hueRotate(hue) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.huerotate(hue);
return this;
}
gaussianBlur(sigma) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.blur(sigma);
return this;
}
unsharpMasking(sigma, threshold) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.unsharpen(sigma, threshold);
return this;
}
resize(width, height, algorithm) {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
// @ts-expect-error
tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f")?.resize(width, height, IllustratorImage_1.IllustratorImageEnums.ResizeFilterType[algorithm]);
return this;
}
get transformer() {
return tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f");
}
async getImage() {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
// eslint-disable-next-line
return await tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f").toImage();
}
getImageSync() {
tslib_1.__classPrivateFieldGet(this, _PixelsTool_instances, "m", _PixelsTool_ensureTransformer).call(this);
// eslint-disable-next-line
return tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f").toImageSync();
}
async renderTransformer(context) {
const data = await this.getImage();
this.history.push((ctx) => {
if ("width" in context && "height" in context) {
// eslint-disable-next-line
ctx.drawImage(data, context.from, context.to, context.width, context.height);
}
else {
ctx.drawImage(data, context.from, context.to);
}
});
}
renderTransformerSync(context) {
const data = this.getImageSync();
this.history.push((ctx) => {
if ("width" in context && "height" in context) {
// eslint-disable-next-line
ctx.drawImage(data, context.from, context.to, context.width, context.height);
}
else {
ctx.drawImage(data, context.from, context.to);
}
});
}
clearTransformer() {
tslib_1.__classPrivateFieldSet(this, _PixelsTool_transformer, null, "f");
}
}
exports.PixelsTool = PixelsTool;
_PixelsTool_transformer = new WeakMap(), _PixelsTool_instances = new WeakSet(), _PixelsTool_ensureTransformer = function _PixelsTool_ensureTransformer() {
if (!tslib_1.__classPrivateFieldGet(this, _PixelsTool_transformer, "f"))
throw new Error("transformer is not created");
};