/**
 * ポストプロセス処理の基底クラス
 */
export class BasePostProcess {
    constructor() {
        this.name = 'base';
        this.label = 'ベース';
    }

    /**
     * ポストプロセス処理を適用
     * @param {HTMLCanvasElement} canvas - 処理対象のcanvas
     * @returns {HTMLCanvasElement} - 処理後のcanvas
     */
    async apply(canvas) {
        // 基底クラスでは何もせずにcanvasをそのまま返す
        return canvas;
    }

    /**
     * 最終的なPNG画像データを生成
     * @param {HTMLCanvasElement} canvas - 処理対象のcanvas
     * @returns {string} - PNG形式の画像データURL
     */
    static toPng(canvas) {
        return canvas.toDataURL('image/png');
    }
}