def METHOD_NAME(url, parent=None, needs_raise_after=True, dimensions=2, series=None):
    from ..figure import Figure
    filename = url[(url.rfind("/") + 1) :]
    try:
        provider = FileImage(
            filename=filename,
            name=os.path.splitext(filename)[0],
            pathname=os.path.dirname(url),
            volume=True if dimensions == 3 else False,
            series=series,
        )
        image = provider.provide_image(None).pixel_data
    except IOError:
        wx.MessageBox(
            'Failed to open file, "{}"'.format(filename), caption="File open error"
        )
        return
    except Exception as e:
        errordialog.display_error_dialog(
            None, e, None, "Failed to load {}".format(url), continue_only=True
        )
        return
    frame = Figure(parent=parent, title=filename)
    frame.set_subplots(dimensions=dimensions, subplots=(1, 1))
    if dimensions == 2 and image.ndim == 3:  # multichannel images
        frame.subplot_imshow_color(0, 0, image[:, :, :3], title=filename, normalize=True)
    else:  # grayscale image or volume
        frame.subplot_imshow_grayscale(0, 0, image, title=filename, normalize=True)
    frame.panel.draw()
    if needs_raise_after:
        # %$@ hack hack hack
        wx.CallAfter(lambda: frame.Raise())
    return True