def image(self, x, y, image, width=None, height=None):
        """
        Inserts an image into the drawing, position by its top-left corner.
        
        :param int x:
            The x position to insert the image.

        :param int y:
            The y position to insert the image.

        :param str image:
            The file path or a PhotoImage or PIL.Image object.

        :param str width:
            The width to scale the image too, setting to `None` will use the
            actual width of the Image. Default to `None`.

        :param str height:
            The width to scale the image too, setting to `None` will use the 
            actual height of the Image. Default to `None`.

        :return:
            The id of the image.
        """
        # load the image and add to the dict (otherwise tk destroys the reference to them!)
        _image = utils.GUIZeroImage(image, width, height)
        id = self.tk.create_image(x, y, image=_image.tk_image, anchor="nw")
        self._images[id] = _image
        return id
Inserts an image into the drawing, position by its top-left corner.
        
        :param int x:
            The x position to insert the image.

        :param int y:
            The y position to insert the image.

        :param str image:
            The file path or a PhotoImage or PIL.Image object.

        :param str width:
            The width to scale the image too, setting to `None` will use the
            actual width of the Image. Default to `None`.

        :param str height:
            The width to scale the image too, setting to `None` will use the 
            actual height of the Image. Default to `None`.

        :return:
            The id of the image.