It turns out the right way to do this is with a context manager.
def get_convex_hull(file) -> PointCloud:
with Color("srgba(0,0,0,0)") as transparent:
with image.Image(filename=file) as img:
points = img.convex_hull(background=transparent)
return points