def save(self, path):
        """Save image to file path.

        The image format is guessed from the extension. If path has no
        extension, the image's :attr:`format` is used.

        :returns: Path to the saved file.

        """
        (folder, filename) = os.path.split(path)
        (name, extension) = os.path.splitext(filename)

        if not name:
            raise ValueError, "name is required"

        if extension:
            format = Image.image_format(extension)
        else:
            format = self.format
            filename = name + self.extension
            path = os.path.join(folder, filename)

        image = self.convert(format)
        if image._contents:
            f = open(path, "wb")
            f.write(image._contents)
            f.close()
        else:
            image.pil_image.save(path, format)

        return path
Save image to file path.

        The image format is guessed from the extension. If path has no
        extension, the image's :attr:`format` is used.

        :returns: Path to the saved file.