compiletime icon indicating copy to clipboard operation
compiletime copied to clipboard

Adds support for loading a file as a base64 encoded string.

Open davidbruce opened this issue 5 years ago • 0 comments

I needed this functionality for loading some .png files at compile time.

Helper Macro I'm using that relies on compiletime:

class ImageHelper {
    #if java
    public static function imageFromBase64(base64: String) {
        var decoder = Base64.getDecoder();
        return new ByteArrayInputStream(decoder.decode(base64)); 
    }
    #end
 
    macro public static function load(path: String): ExprOf<String> {
        return  macro {
              ImageHelper.imageFromBase64(CompileTime.readFileAsBase64($v{path}));
        };
    }
}

Actual usage:

public function loadAll(display: Display) {
        Bold =          new Image(display, ImageHelper.load("images/format-bold.png"));
        Italic =        new Image(display, ImageHelper.load("images/format-italic.png"));
        Underline =     new Image(display, ImageHelper.load("images/format-underline.png"));
        Strikeout =     new Image(display, ImageHelper.load("images/format-strikethrough-variant.png"));
    }

davidbruce avatar Oct 26 '20 18:10 davidbruce