UNPKG

@shopify/react-native-skia

Version:

High-performance React Native Graphics using Skia

74 lines (73 loc) 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JsiSkImageFactory = void 0; var _types = require("../types"); var _Host = require("./Host"); var _JsiSkImage = require("./JsiSkImage"); var _JsiSkData = require("./JsiSkData"); class JsiSkImageFactory extends _Host.Host { constructor(CanvasKit) { super(CanvasKit); } MakeNull() { return new _JsiSkImage.JsiSkImage(this.CanvasKit, null); } MakeImageFromViewTag(viewTag) { const view = viewTag; // TODO: Implement screenshot from view in React JS console.log(view); return Promise.resolve(null); } MakeImageFromNativeBuffer(buffer, surface, image) { if (!(0, _types.isNativeBufferWeb)(buffer)) { throw new Error("Invalid NativeBuffer"); } if (!surface) { let img; if (buffer instanceof HTMLImageElement || buffer instanceof HTMLVideoElement || buffer instanceof ImageBitmap) { img = this.CanvasKit.MakeLazyImageFromTextureSource(buffer); } else if (buffer instanceof _types.CanvasKitWebGLBuffer) { img = buffer.toImage(); } else { img = this.CanvasKit.MakeImageFromCanvasImageSource(buffer); } return new _JsiSkImage.JsiSkImage(this.CanvasKit, img); } else if (!image) { // eslint-disable-next-line @typescript-eslint/no-explicit-any const img = surface.makeImageFromTextureSource(buffer); return new _JsiSkImage.JsiSkImage(this.CanvasKit, img); } else { // eslint-disable-next-line @typescript-eslint/no-explicit-any const img = surface.updateTextureFromSource(image, buffer); return new _JsiSkImage.JsiSkImage(this.CanvasKit, img); } } MakeImageFromEncoded(encoded) { const image = this.CanvasKit.MakeImageFromEncoded(_JsiSkData.JsiSkData.fromValue(encoded)); if (image === null) { return null; } return new _JsiSkImage.JsiSkImage(this.CanvasKit, image); } MakeImageFromNativeTextureUnstable() { return (0, _Host.throwNotImplementedOnRNWeb)(); } MakeImage(info, data, bytesPerRow) { // see toSkImageInfo() from canvaskit const image = this.CanvasKit.MakeImage({ alphaType: (0, _Host.getEnum)(this.CanvasKit, "AlphaType", info.alphaType), colorSpace: this.CanvasKit.ColorSpace.SRGB, colorType: (0, _Host.getEnum)(this.CanvasKit, "ColorType", info.colorType), height: info.height, width: info.width }, _JsiSkData.JsiSkData.fromValue(data), bytesPerRow); if (image === null) { return null; } return new _JsiSkImage.JsiSkImage(this.CanvasKit, image); } } exports.JsiSkImageFactory = JsiSkImageFactory; //# sourceMappingURL=JsiSkImageFactory.js.map