class Bitmap private constructor(internal val sk: CPointer) : Closeable { companion object { fun fromFile(f: String): Bitmap { val d = SkiaData.fromFile(f) val bb = sk_bitmap_from_data(d.sk)!! if (bb == null) throw Exception("what???") d.close() return Bitmap(bb) } } override fun close() { sk_bitmap_delete(sk) } }