ngx-webcam2
Version:
A simple Angular webcam component. Pure & minimal, no Flash-fallback. <a href="https://basst314.github.io/ngx-webcam/?" target="_blank">See the Demo!</a>
46 lines • 4.71 kB
JavaScript
/**
* Container class for a captured webcam image
* @author basst314, davidshen84
*/
export class WebcamImage {
constructor(imageAsDataUrl, mimeType, imageData) {
this._mimeType = null;
this._imageAsBase64 = null;
this._imageAsDataUrl = null;
this._imageData = null;
this._mimeType = mimeType;
this._imageAsDataUrl = imageAsDataUrl;
this._imageData = imageData;
}
/**
* Extracts the Base64 data out of the given dataUrl.
* @param dataUrl the given dataUrl
* @param mimeType the mimeType of the data
*/
static getDataFromDataUrl(dataUrl, mimeType) {
return dataUrl.replace(`data:${mimeType};base64,`, '');
}
/**
* Get the base64 encoded image data
* @returns base64 data of the image
*/
get imageAsBase64() {
return this._imageAsBase64 ? this._imageAsBase64
: this._imageAsBase64 = WebcamImage.getDataFromDataUrl(this._imageAsDataUrl, this._mimeType);
}
/**
* Get the encoded image as dataUrl
* @returns the dataUrl of the image
*/
get imageAsDataUrl() {
return this._imageAsDataUrl;
}
/**
* Get the ImageData object associated with the canvas' 2d context.
* @returns the ImageData of the canvas's 2d context.
*/
get imageData() {
return this._imageData;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY2FtLWltYWdlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXdlYmNhbS8iLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy93ZWJjYW0vZG9tYWluL3dlYmNhbS1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFtQixjQUFzQixFQUFFLFFBQWdCLEVBQUUsU0FBb0I7UUFNaEUsY0FBUyxHQUFXLElBQUksQ0FBQztRQUNsQyxtQkFBYyxHQUFXLElBQUksQ0FBQztRQUNyQixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUMvQixlQUFVLEdBQWMsSUFBSSxDQUFDO1FBUjVDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFRRDs7OztPQUlHO0lBQ0ssTUFBTSxDQUFDLGtCQUFrQixDQUFDLE9BQWUsRUFBRSxRQUFnQjtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxRQUFRLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbmVyIGNsYXNzIGZvciBhIGNhcHR1cmVkIHdlYmNhbSBpbWFnZVxuICogQGF1dGhvciBiYXNzdDMxNCwgZGF2aWRzaGVuODRcbiAqL1xuZXhwb3J0IGNsYXNzIFdlYmNhbUltYWdlIHtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW1hZ2VBc0RhdGFVcmw6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZywgaW1hZ2VEYXRhOiBJbWFnZURhdGEpIHtcbiAgICB0aGlzLl9taW1lVHlwZSA9IG1pbWVUeXBlO1xuICAgIHRoaXMuX2ltYWdlQXNEYXRhVXJsID0gaW1hZ2VBc0RhdGFVcmw7XG4gICAgdGhpcy5faW1hZ2VEYXRhID0gaW1hZ2VEYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWltZVR5cGU6IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgX2ltYWdlQXNCYXNlNjQ6IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ltYWdlQXNEYXRhVXJsOiBzdHJpbmcgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbWFnZURhdGE6IEltYWdlRGF0YSA9IG51bGw7XG5cblxuICAvKipcbiAgICogRXh0cmFjdHMgdGhlIEJhc2U2NCBkYXRhIG91dCBvZiB0aGUgZ2l2ZW4gZGF0YVVybC5cbiAgICogQHBhcmFtIGRhdGFVcmwgdGhlIGdpdmVuIGRhdGFVcmxcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSBtaW1lVHlwZSBvZiB0aGUgZGF0YVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RGF0YUZyb21EYXRhVXJsKGRhdGFVcmw6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBkYXRhVXJsLnJlcGxhY2UoYGRhdGE6JHttaW1lVHlwZX07YmFzZTY0LGAsICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2U2NCBlbmNvZGVkIGltYWdlIGRhdGFcbiAgICogQHJldHVybnMgYmFzZTY0IGRhdGEgb2YgdGhlIGltYWdlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlQXNCYXNlNjQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faW1hZ2VBc0Jhc2U2NCA/IHRoaXMuX2ltYWdlQXNCYXNlNjRcbiAgICAgIDogdGhpcy5faW1hZ2VBc0Jhc2U2NCA9IFdlYmNhbUltYWdlLmdldERhdGFGcm9tRGF0YVVybCh0aGlzLl9pbWFnZUFzRGF0YVVybCwgdGhpcy5fbWltZVR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZW5jb2RlZCBpbWFnZSBhcyBkYXRhVXJsXG4gICAqIEByZXR1cm5zIHRoZSBkYXRhVXJsIG9mIHRoZSBpbWFnZVxuICAgKi9cbiAgcHVibGljIGdldCBpbWFnZUFzRGF0YVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZUFzRGF0YVVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIEltYWdlRGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjYW52YXMnIDJkIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIHRoZSBJbWFnZURhdGEgb2YgdGhlIGNhbnZhcydzIDJkIGNvbnRleHQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlRGF0YSgpOiBJbWFnZURhdGEge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZURhdGE7XG4gIH1cblxufVxuIl19