@cbdev/ngx-webcam
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.72 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY2FtLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3dlYmNhbS9kb21haW4vd2ViY2FtLWltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQW1CLGNBQXNCLEVBQUUsUUFBZ0IsRUFBRSxTQUFvQjtRQU1oRSxjQUFTLEdBQVcsSUFBSSxDQUFDO1FBQ2xDLG1CQUFjLEdBQVcsSUFBSSxDQUFDO1FBQ3JCLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLGVBQVUsR0FBYyxJQUFJLENBQUM7UUFSNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQVFEOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsa0JBQWtCLENBQUMsT0FBZSxFQUFFLFFBQWdCO1FBQ2pFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLFFBQVEsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYztZQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWluZXIgY2xhc3MgZm9yIGEgY2FwdHVyZWQgd2ViY2FtIGltYWdlXG4gKiBAYXV0aG9yIGJhc3N0MzE0LCBkYXZpZHNoZW44NFxuICovXG5leHBvcnQgY2xhc3MgV2ViY2FtSW1hZ2Uge1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihpbWFnZUFzRGF0YVVybDogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nLCBpbWFnZURhdGE6IEltYWdlRGF0YSkge1xuICAgIHRoaXMuX21pbWVUeXBlID0gbWltZVR5cGU7XG4gICAgdGhpcy5faW1hZ2VBc0RhdGFVcmwgPSBpbWFnZUFzRGF0YVVybDtcbiAgICB0aGlzLl9pbWFnZURhdGEgPSBpbWFnZURhdGE7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9taW1lVHlwZTogc3RyaW5nID0gbnVsbDtcbiAgcHJpdmF0ZSBfaW1hZ2VBc0Jhc2U2NDogc3RyaW5nID0gbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW1hZ2VBc0RhdGFVcmw6IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ltYWdlRGF0YTogSW1hZ2VEYXRhID0gbnVsbDtcblxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyB0aGUgQmFzZTY0IGRhdGEgb3V0IG9mIHRoZSBnaXZlbiBkYXRhVXJsLlxuICAgKiBAcGFyYW0gZGF0YVVybCB0aGUgZ2l2ZW4gZGF0YVVybFxuICAgKiBAcGFyYW0gbWltZVR5cGUgdGhlIG1pbWVUeXBlIG9mIHRoZSBkYXRhXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXREYXRhRnJvbURhdGFVcmwoZGF0YVVybDogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGRhdGFVcmwucmVwbGFjZShgZGF0YToke21pbWVUeXBlfTtiYXNlNjQsYCwgJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0IGVuY29kZWQgaW1hZ2UgZGF0YVxuICAgKiBAcmV0dXJucyBiYXNlNjQgZGF0YSBvZiB0aGUgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBnZXQgaW1hZ2VBc0Jhc2U2NCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZUFzQmFzZTY0ID8gdGhpcy5faW1hZ2VBc0Jhc2U2NFxuICAgICAgOiB0aGlzLl9pbWFnZUFzQmFzZTY0ID0gV2ViY2FtSW1hZ2UuZ2V0RGF0YUZyb21EYXRhVXJsKHRoaXMuX2ltYWdlQXNEYXRhVXJsLCB0aGlzLl9taW1lVHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBlbmNvZGVkIGltYWdlIGFzIGRhdGFVcmxcbiAgICogQHJldHVybnMgdGhlIGRhdGFVcmwgb2YgdGhlIGltYWdlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlQXNEYXRhVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ltYWdlQXNEYXRhVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgSW1hZ2VEYXRhIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGNhbnZhcycgMmQgY29udGV4dC5cbiAgICogQHJldHVybnMgdGhlIEltYWdlRGF0YSBvZiB0aGUgY2FudmFzJ3MgMmQgY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW1hZ2VEYXRhKCk6IEltYWdlRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX2ltYWdlRGF0YTtcbiAgfVxuXG59XG4iXX0=