compiletime
compiletime copied to clipboard
Adds support for loading a file as a base64 encoded string.
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"));
}